home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / MS-DOS Interrupt List / inter60d / PORTS.C < prev    next >
Text File  |  1999-01-03  |  171KB  |  4,497 lines

  1. Ports List, part 3 of 3
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  3. ----------P0AD60AD7--------------------------
  4. PORT 0AD6-0AD7 - Chips & Technologies PC Video (82C9001A) - CONTROL REGISTERS
  5. Range:    Address determined by status of CS# input at RESET. If CS# input is
  6.       low on falling edge of RESET, then address is fixed at 0AD6-0AD7h;
  7.       otherwise, the programmable address is used.
  8. Note:    register FFh is write-only and all other registers are disabled if
  9.       register FFh bit 0 is cleared.
  10. SeeAlso: PORT 03D4h
  11.  
  12. 0AD6  -W  index for accesses to data port (see #P0924)
  13. 0AD7  RW  data port
  14.  
  15. (Table P0924)
  16. Values for Chips & Technologies PC Video (82C9001A) control registers:
  17.  00h    I/O Address Register (see #P0925)
  18.  01h    Memory Access Register (see #P0926)
  19.  06h    Linear Memory Base Address Register (see #P0927)
  20.  07h    Luminance Data Mask Register (enabled by register 01h bit 4)
  21.     (0 prevents data modification during video data acquisition
  22.       in corresponding bit position)
  23.  08h    Chrominance Data Mask Register (enabled by register 01h bit 4)
  24.     (0 prevents data modification during video data acquisition
  25.       in corresponding bit position)
  26.  09h    Interupt Mask/Polling Register (see #P0928)
  27.  10h    General Purpose I/O Register 0
  28.  11h    General Purpose I/O Register 1
  29.  12h    General Purpose I/O Register 2
  30.  13h    General Purpose I/O Register 3
  31.  18h    General Purpose I/O Control Register (see #P0929)
  32.  20h    Video Acquisition Mode Register (see #P0930)
  33.  21h    Acquisition Window Control Register (see #P0931)
  34.  22h    Acquisition Window X-Start Low Byte Register
  35.     (X-Start is measured in input pixel clocks, referenced to trailing
  36.       edge of video Hsync)
  37.  23h    Acquisition Window X-Start High Byte Register (two high order bits)
  38.  24h    Acquisition Window Y-Start Low Byte Register
  39.     (Y-Start is measured in input lines, referenced to trailing edge of
  40.       video Vsync + V Start Adjust (register 30h))
  41.  25h    Acquisition Window Y-Start High Byte Register (two high order bits)
  42.  26h    Acquisition Window X-End Low Byte Register
  43.     (X-End is measured in input pixel clocks, referenced to trailing edge
  44.       of video Hsync)
  45.  27h    Acquisition Window X-End High Byte Register (two high order bits)
  46.  28h    Acquisition Window Y-End Low Byte Register
  47.     (measured in input lines, referenced to trailing edge of
  48.       video Vsync + V Start Adjust (register 30h))
  49.  29h    Acquisition Window Y-End High Byte Register (two high order bits)
  50.  2Ah    Acquisition Write Address Low Register
  51.     (points to frame memory location where video acquisition starts;
  52.       at end of video line reset to beginning and offset of 1024 bytes
  53.       is added for start address of next line)
  54.  2Bh    Acquisition Write Address Middle Register
  55.  2Ch    Acquisition Write Address High Register (4 high order bits)
  56.  2Dh    Acquisition Horizontal-Scaling Register (see #P0932)
  57.  2Eh    Acquisition Vertical-Scaling Register (see #P0933)
  58.  2Fh    Scaling Field Adjust Register (see #P0934)
  59.  30h    Input Video Start Adjust (see #P0935)
  60.  38h    Scaling Control Register (see #P0936)
  61.  40h    Display Area Control Register (see #P0937)
  62.  41h    Display Window X-Start Low Byte Register
  63.     (defines start of horizontal display window; measured in VGA pixel
  64.       clocks, referenced to trailing edge of VGA Hsync)
  65.  42h    Display Window X-Start High Byte Register (three high order bits)
  66.  43h    Display Window Y-Start Low Byte Register
  67.     (defines start of vertical display window; measured in VGA lines,
  68.       referenced to trailing edge of VGA Vsync)
  69.  44h    Display Window Y-Start High Byte Register (two high order bits)
  70.  45h    Display Window X-End Low Byte Register
  71.     (defines end of horizontal display window; measured in VGA pixel
  72.       clocks, referenced to trailing edge of VGA Hsync)
  73.  46h    Display Window X-End High Byte Register (three high order bits)
  74.  47h    Display Window Y-End Low Byte Register
  75.     (defines start of vertical display window; measured in VGA lines,
  76.       referenced to trailing edge of VGA Vsync)
  77.  48h    Display Window Y-End High Byte Register (two high order bits)
  78.  49h    Display Window X-Panning Low Register
  79.     (defines display buffer column address times 2, loaded during data
  80.       transfer cycle in VRAMs; for 4:1:1 encoding bit 0 should be set to 0)
  81.  4Ah    Display Window Y-Panning Low Register
  82.       (defines display buffer row, loaded for first active display line)
  83.  4Bh    Display Window X/Y-Panning High Register (see #P0938)
  84.  4Ch    Shift Clock Start Register (7 bits)
  85.       (defines end of display blank relative to VGA Hsync trailing edge)
  86.  4Dh    Sync Polarity/Zoom Register (see #P0939)
  87.  4Eh    VGA Color Compare Register (see #P0940)
  88.  4Fh    VGA Color Mask Register (see #P0941)
  89.  50h    Display Window Interlace Control (see #P0942)
  90.  FFh    Version/Global Enable Register (see #P0943)
  91.  
  92. Bitfields for Chips & Technologies PC Video (82C9001A) I/O Address Register:
  93. Bit(s)    Description    (Table P0925)
  94.  7-1    I/O address bits 7-1
  95.     (These bits are compared with address inputs (A7-1) to detect
  96.       valid I/O address. If CS# is low on RESET, this register is
  97.       initialized to D6h. If CS# is high on RESET, this register is
  98.       loaded with value present on data inputs (D7-1) during first
  99.       I/O on the chip (IOWR# = 0 and CS# = 0).)
  100.  0    reserved
  101. SeeAlso: #P0924,#P0926,#P0927
  102.  
  103. Bitfields for Chips & Technologies PC Video (82C9001A) Memory Access Register:
  104. Bit(s)    Description    (Table P0926)
  105.  7-5    reserved
  106.  4    VRAM write mask enable (enables registers 07h and 08h)
  107.  3-0    reserved
  108. SeeAlso: #P0924,#P0925,#P0927,#P0928
  109.  
  110. Bitfields for Chips & Technologies PC Video (82C9001A) Linear Memory Base:
  111. Bit(s)    Description    (Table P0927)
  112.  7-5    reserved
  113.  4    reserved (1)
  114.  3-0    linear memory space starting address (in 1MB units)
  115. SeeAlso: #P0924,#P0925
  116.  
  117. Bitfields for Chips & Technologies PC Video (82C9001A) Interupt Mask/Polling:
  118. Bit(s)    Description    (Table P0928)
  119.  7-6    reserved
  120.  5    VGA Hsync status
  121.  4    VGA Vsync status
  122.  3    video field status
  123.     0 = even
  124.     1 = odd
  125.  2    video Vsync status
  126.  1    video odd Vsync interrupt enable
  127.  0    video even Vsync interrupt enable
  128. SeeAlso: #P0924,#P0221
  129.  
  130. Bitfields for Chips & Technologies PC Video (82C9001A) General Purpose I/O:
  131. Bit(s)    Description    (Table P0929)
  132.  7    general purpose I/O 3
  133.     0 = output decode of register 13h on GPIO3
  134.     1 = reserved
  135.  6    general purpose I/O 2
  136.     0 = output decode of register 12h on GPIO2
  137.     1 = reserved
  138.  5    general purpose I/O 1
  139.     0 = output "PLLHREF" on GPIO1
  140.     1 = output decode of register 11h on GPIO1
  141.  4    general purpose I/O 0
  142.     0 = output decode of register 10h on GPIO0
  143.     1 = reserved
  144.  3    reserved
  145.  2    I2C bus read back
  146.       (status of I2CI pin when I2CK pin goes from 0 to 1)
  147.  1    I2C bus data (refer to I2C.LST for more details on the I2C bus)
  148.  0    I2C bus clock
  149. SeeAlso: #P0924
  150.  
  151. Bitfields for Chips & Technologies PC Video (82C9001A) Video Acquisition Mode:
  152. Bit(s)    Description    (Table P0930)
  153.  7    video input is non-interlace
  154.  6    reserved
  155.  5    video input Vsync polarity is active high
  156.  4    video input Hsync polarity is active high
  157.  3    video input even/odd acquire
  158.     0 = even (first) field
  159.     1 = odd (second) field
  160.  2    video acquire field/frame
  161.     0 = frame
  162.     1 = field (interlaced mode only)
  163.  1    video acquisition single/continuous
  164.     0 = continuous
  165.     1 = single (bit 0 cleared at the end)
  166.  0    video acquisition start/stop
  167.     0 = stop (allows CPU access to frame buffer)
  168.     1 = start
  169. SeeAlso: #P0924
  170.  
  171. Bitfields for Chips & Technologies PC Video (82C9001A) Window Control:
  172. Bit(s)    Description    (Table P0931)
  173.  7    invert field polarity
  174.  6    select external field
  175.     0 = internal field (field detected 1 XCLK after trailing edge of
  176.       XVSYNC input bit)
  177.     1 = field bit input through XFLD pin and reclocked by XCLK before
  178.       XFLD use (XFLD input transition after trailing edge of XVSYNC; 
  179.       0 on XFLD = even field, 1 on XFLD = odd field)
  180.  5    multiplexing ratio for luminance and chrominance input data
  181.       (active if bit 4 = 0)
  182.     0 = 4:1:1 / 2:1:1
  183.     1 = 4:2:2
  184.  4    video input data multiplexing
  185.     0 = multiplexed (YUV)
  186.     1 = non-multiplexed (RGB)
  187.  3    video input vertical scaling enable
  188.  2    video input horizontal scaling enable
  189.  1    video capture
  190.     0 = inside cropping window
  191.     1 = outside cropping window
  192.  0    video input cropping enable
  193. SeeAlso: #P0924,#P0935,#P0937
  194.  
  195. Bitfields for Chips & Technologies PC Video (82C9001A) Horizontal Scaling:
  196. Bit(s)    Description    (Table P0932)
  197.  7-6    reserved
  198.  5-0    number of pixels written per 64 input pixels
  199.     (valid values are 1-63; enabled by register 21h bit 2)
  200. SeeAlso: #P0924,#P0933,#P0934
  201.  
  202. Bitfields for Chips & Technologies PC Video (82C9001A) Vertical Scaling:
  203. Bit(s)    Description    (Table P0933)
  204.  7    reserved
  205.  6-0    number of pixels written per 64 input pixels
  206.     (valid values are 1-63; enabled by register 21h bit 3)
  207. SeeAlso: #P0924,#P0932,#P0934
  208.  
  209. Bitfields for Chips & Technologies PC Video (82C9001A) Scaling Field Adjust:
  210. Bit(s)    Description    (Table P0934)
  211.  7    reserved
  212.  6-0    modify scaling value for odd field during acquisition
  213.     (diagnostic register, set to same value as register 2Eh for normal
  214.       operation)
  215. SeeAlso: #P0924,#P0932,#P0936
  216.  
  217. Bitfields for Chips & Technologies PC Video (82C9001A) Input Video Start:
  218. Bit(s)    Description    (Table P0935)
  219.  7-6    reserved
  220.  5-0    number of scan lines from trailing edge of video Vsync to start of
  221.       active video frame
  222.     (should always be programmed with non-zero value)
  223. SeeAlso: #P0924,#P0931
  224.  
  225. Bitfields for Chips & Technologies PC Video (82C9001A) Scaling Control:
  226. Bit(s)    Description    (Table P0936)
  227.  7    fast write enable
  228.  6-5    reserved (0 for normal operation)
  229.  4    Y-max enable
  230.     (prevents wrap around of memory Y-address; should be enabled for
  231.       PAL video data)
  232.  3    X-max enable (prevents wrap around of memory X-address)
  233.  2    Y-over-write mode
  234.     (should be set to 1 when vertical scaling less than 1/2 to reduce
  235.       motion artifacts)
  236.     0 = normal scaling
  237.     1 = modified scaling
  238.  1-0    chrominance multiplex adjust bits
  239.     (adjust to maintain luminance/chrominance alignment)
  240. SeeAlso: #P0924,#P0934
  241.  
  242. Bitfields for Chips & Technologies PC Video (82C9001A) Display Area Control:
  243. Bit(s)    Description    (Table P0937)
  244.  7-6    skew between VGA data input and multiplexer control output
  245.     00 = 2 VGA clock delay
  246.     01 = 3 VGA clock delay
  247.     10 = 4 VGA clock delay
  248.     11 = 5 VGA clock delay
  249.  5    both X-Y window and color key area (function 3)
  250.     (does not exist if bit 0 = 0 or bit 1 = 0)
  251.     0 = display VGA
  252.     1 = display frame buffer data
  253.  4    color key only area (function 2)
  254.     (does not exist if bit 1 = 0)
  255.     0 = display VGA
  256.     1 = display frame buffer data
  257.  3    X-Y window only area (function 1)
  258.     (does not exist if bit 0 = 0)
  259.     0 = display VGA
  260.     1 = display frame buffer data
  261.  2    non-color key or X-Y window area (function 0)
  262.     0 = display VGA
  263.     1 = display frame buffer data
  264.  1    overlay window using color keying enable
  265.  0    overlay window using X-Y window enable
  266. SeeAlso: #P0924,#P0931
  267.  
  268. Bitfields for Chips & Technologies PC Video (82C9001A) X/Y-Panning High:
  269. Bit(s)    Description    (Table P0938)
  270.  7-5    reserved
  271.  4    high bit of row offset (register 4Ah)
  272.  3-1    reserved
  273.  0    high bit of column offset (register 49h)
  274. SeeAlso: #P0924
  275.  
  276. Bitfields for Chips & Technologies PC Video (82C9001A) Sync Polarity/Zoom:
  277. Bit(s)    Description    (Table P0939)
  278.  7-6    reserved
  279.  5    VGA Vsync polarity is active high
  280.  4    VGA Hsync polarity is active high
  281.  3-2    vertical zoom
  282.     00 = no zoom
  283.     01 = 2x
  284.     10 = 4x
  285.     11 = 8x
  286.  1-0    horizontal zoom (same values as vertical zoom)
  287. SeeAlso: #P0924
  288.  
  289. Bitfields for Chips & Technologies PC Video (82C9001A) VGA Color Compare:
  290. Bit(s)    Description    (Table P0940)
  291.  7-0    defines values VGA data must have for color match
  292.     0 = VGA data must be 0
  293.     1 = VGA data must be 1
  294. SeeAlso: #P0924,#P0941
  295.  
  296. Bitfields for Chips & Technologies PC Video (82C9001A) VGA Color Mask Register:
  297. Bit(s)    Description    (Table P0941)
  298.  7-0    defines bit position where VGA and color value must match
  299.     0 = VGA data must match color value
  300.     1 = don't care
  301. SeeAlso: #P0924,#P0940
  302.  
  303. Bitfields for Chips & Technologies PC Video (82C9001A) Interlace Control:
  304. Bit(s)    Description    (Table P0942)
  305.  7-5    reserved
  306.  4    replicate odd/even field (if bit 3 = 1)
  307.     0 = odd
  308.     1 = even
  309.  3    replicate field
  310.     0 = do not replicate
  311.     1 = replicate even/odd (depending on bit 4)
  312.  2    invert display window field signal polarity (if bit 0 = 1)
  313.     0 = do not modify
  314.     1 = invert
  315.  1    select external display window field signal (if bit 0 = 1)
  316.     0 = internal
  317.     1 = VFLD input
  318.  0    display window is interlaced
  319. SeeAlso: #P0924
  320.  
  321. Bitfields for Chips & Technologies PC Video (82C9001A) Version/Global Enable:
  322. Bit(s)    Description    (Table P0943)
  323.  7-4    PC Video version number
  324.  3    reserved
  325.  2    IOWR# delay (write-only)
  326.     0 = IOWR# input delayed inside chip by 2 XCLK cycles
  327.     1 = IOWR# input not delayed
  328.  1    enable memory (write-only)
  329.  0    PC Video global enable (write-only)
  330.     0 = index register and register FFh are write only and all other
  331.       registers are disabled
  332.     1 = all registers are read/write
  333. SeeAlso: #P0924
  334. ----------P0AE20AE3--------------------------
  335. PORT 0AE2-0AE3 - cluster (adapter 2)
  336. ----------P0AE8------------------------------
  337. PORT 0AE8 - S3 86C928 video controller (ELSA Winner 1000)
  338. ----------P0AE80AEF--------------------------
  339. PORT 0AE8-0AEF - 8514/A and compatible (e.g. ATI Graphics Ultra) - HSYNC START
  340.  
  341. 0AE8w -W  CRT control: horizontal sync start
  342. ----------P0B900B93--------------------------
  343. PORT 0B90-0B93 - cluster (adapter 2)
  344. ----------P0C00------------------------------
  345. PORT 0C00 - EISA??? - PAGE REGISTER
  346.  
  347. 0C00  RW  page register to write to SRAM or I/O
  348. --------X-P0C000CFF--------------------------
  349. PORT 0C00-0CFF - reserved for EISA system motherboard
  350. ----------P0C7C------------------------------
  351. PORT 0C7C        bit 7-4 (Compaq)
  352. --------X-P0C800C83--------------------------
  353. PORT 0C80-0C83 - EISA system board ID registers
  354.  
  355. 0C80  R-  bit 7: unused (0)
  356.       bits 6-2: manufacturer ID, first compressed ASCII char
  357.       bits 1-0: manufacturer ID, second compressed ASCII char (high)
  358. 0C81  R-  bits 7-5: manufacturer ID, second compressed ASCII char (low)
  359.       bits 4-0: manufacturer ID, third compressed ASCII char
  360. 0C82  R-  reserved for manufacturer's use
  361. 0C83  R-  bits 7-3: reserved for manufacturer's use
  362.       bits 2-0: EISA bus version
  363. --------X-P0CF80CFF--------------------------
  364. PORT 0CF8-0CFF - PCI Configuration Mechanism 1 - Configuration Registers
  365. SeeAlso: PORT 0CF8h"Mechanism 2"
  366.  
  367. 0CF8d -W  configuration address port (see #P0944)
  368. 0CFCd RW  configuration data port (when PORT 0CF8h bit 31 is set)
  369.  
  370. Bitfields for PCI configuration address port:
  371. Bit(s)    Description    (Table P0944)
  372.  1-0    reserved (00)
  373.  7-2    configuration register number (see #00878)
  374.  10-8    function
  375.  15-11    device number
  376.  23-16    bus number
  377.  30-24    reserved (0)
  378.  31    enable configuration space mapping
  379. Note:    configuration registers are considered DWORDs, so the number in bits
  380.       7-2 is the configuration space address shifted right two bits
  381. SeeAlso: #P0945
  382. --------X-P0CF80CFA--------------------------
  383. PORT 0CF8-0CFA - PCI Configuration Mechanism 2 - Configuration Registers
  384. Notes:    this configuration mechanism is deprecated as of PCI version 2.1;
  385.       only mechanism 1 should be used for new systems
  386.     to access the configuration space, write the target bus number to
  387.       the Forward Register, then write to the Configuration Space
  388.       Enable register, and finally read or write the appropriate I/O
  389.       port(s) in the range C000h to CFFFh (where Cxrrh accesses location
  390.       'rr' in physical device 'x's configuration data)
  391.     the Intel "Saturn" and "Neptune" chipsets use configuration mechanism 2
  392. SeeAlso: PORT 0CF8h"Mechanism 1",PORT C000h"PCI Configuration",PORT 0CFBh
  393.  
  394. 0CF8  RW  Configuration Space Enable (CSE) (see #P0945)
  395. 0CFA  RW  Forward Register (selects target bus number)
  396.  
  397. Bitfields for PCI Configuration Space Enable:
  398. Bit(s)    Description    (Table P0945)
  399.  0    Special Cycle Enable (SCE)
  400.  3-1    target function number (PCI logical device within physical device)
  401.  7-4    key (non-zero to allow configuration)
  402. SeeAlso: #P0944
  403. ----------P0CF9------------------------------
  404. PORT 0CF9 - Intel chipsets - TURBO/RESET CONTROL REGISTER
  405. Notes:    this port can only be accessed via 8-bit IN or OUT instructions by
  406.       the CPU
  407.     supported by the Intel "Saturn" and "Neptune" (82434NX) chipsets,
  408.       the Intel 82454KX/GX (450GX chipset), Intel 82420EX chipset, etc.
  409. SeeAlso: PORT C051h,#01055,#01239
  410.  
  411. 0CF9  RW  reboot system, optionally selecting de-turbo mode (see #P0946)
  412.  
  413. Bitfields for Intel 82420EX turbo/reset control register:
  414. Bit(s)    Description    (Table P0946)
  415.  7-4    reserved (0)
  416.  3    (450KX/GX only) enable CPU BIST on reset
  417.  2    reset CPU
  418.  1    reset mode
  419.     0 soft reset
  420.     1 hard reset
  421.  0    deturbo mode
  422. Note:    when resetting the CPU, two writes are required: the first sets the
  423.       state of bit 1 while keeping bit 2 cleared, and the second sets
  424.       bit 2; the reset occurs on bit 2's transition from 0 to 1.
  425. SeeAlso: PORT C051h
  426. ----------P0CFB------------------------------
  427. PORT 0CFB - Intel 82434NX (Neptune) - PCI MECHANISM CONTROL REGISTER
  428. Note:    not present on the 82434LX (Mercury), which supports only mechanism #2
  429. SeeAlso: PORT 0CF8h
  430.  
  431. 0CFB  RW  specify which PCI access mechanism is to be enabled
  432.  
  433. Bitfields for Intel 82434NX PCI mechanism control register:
  434. Bit(s)    Description    (Table P0947)
  435.  7-1    reserved
  436.  0    PCI Configuration Access Mechanism Select
  437.     =0 use PCI configuration access mechanism #2 (0CF8/0CFA) (default)
  438.     =1 use PCI configuration access mechanism #1 (0CF8/0CFC)
  439. --------s-P0E800E83--------------------------
  440. PORT 0E80-0E83 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  441. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  442.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  443. --------s-P0E800E87--------------------------
  444. PORT 0E80-0E87 - Windows Sound System
  445. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  446. SeeAlso: PORT 0530h"Sound System"
  447. --------V-P0EE8------------------------------
  448. PORT 0EE8 - S3 86C928 video controller (ELSA Winner 1000)
  449. --------V-P0EE80EEF--------------------------
  450. PORT 0EE8-0EEF - 8514/A and compatible (e.g. ATI Graphics Ultra) - HSYNC WIDTH
  451.  
  452. 0EE8w -W  CRT control: horizontal sync width
  453. --------s-P0F400F43--------------------------
  454. PORT 0F40-0F43 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  455. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  456.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  457. --------s-P0F400F47--------------------------
  458. PORT 0F40-0F47 - Windows Sound System
  459. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  460. SeeAlso: PORT 0530h"Sound System"
  461. --------s-P0F8D------------------------------
  462. PORT 0F8D - OPTi 82C750 (Vendetta) - AUDIO MODULE BASE ADDRESS REGISTER
  463. SeeAlso: PORT 0F8Eh,PORT 0530h"Vendetta"
  464.  
  465. 0F8D  RW  "MCBase" base register (see #P0948)
  466.  
  467. Bitfields for OPTi "Vendetta" (82C750) audio module base register:
  468. Bit(s)    Description    (Table P0948)
  469.  7    index/data port access protection disable
  470.  6-5    reserved
  471.  4-0    index/data port address bits 8-4
  472.       (bits 15-9 = 0000111; bits 3-0 = 1110 for index port, data port +1)
  473. SeeAlso: #P0949
  474. ----------P0F8E0F8F--------------------------
  475. PORT 0F8E-0F8F - OPTi "Vendetta" (82C750) CHIPSET - Audio Module Data Registers
  476. Range:    The I/O address range is selectable using port 0F8Dh from among
  477.       0ExE-0ExF and 0FxE-0FxF
  478. SeeAlso: PORT 0F8Dh,PORT 0530h"Vendetta"
  479.  
  480. 0F8E  RW  "MCIdx" index register (see #P0949)
  481. 0F8F  RW  "MCData" data register
  482.  
  483. (Table P0949)
  484. Values for OPTi "Vendetta" (82C750) Audio Module configuration registers:
  485.  00h    disable
  486.  01h    base/type configuration register (see #P0950)
  487.  02h    reserved
  488.  03h    Sound Blaster/Windows Sound System configuration register (see #P0951)
  489.  04h    user programmable general purpose register (see #P0952)
  490.  05h    option register (see #P0953)
  491.  06h    MIDI interface register (write-only) (see #P0954)
  492.  07h    semaphore software register
  493.  08h    reserved
  494.  09h    test control register 1 (see #P0955)
  495.  0Ah    test control register 2 (see #P0956)
  496.  0Bh    status register (read-only) (see #P0957)
  497.  0Ch    test register (see #P0958)
  498.  0Dh    PNP status register (read-only) (see #P0959)
  499.  0Eh    PNP card select number register (read-only)
  500.  0Fh    PNP read port address register (read-only)
  501.  10h    volume control register (see #P0960)
  502.  11h    reserved (serial EEPROM)
  503.  12h    CONFIG status register (see #P0961)
  504.  13h    FM control register (see #P0962)
  505.  14h    reserved (GPIO control)
  506.  15h    serial audio control register 0 (see #P0963)
  507.  16h    serial audio control register 1 (see #P0964)
  508.  17h    reserved
  509.  
  510. Bitfields for OPTi "Vendetta" Audio Module base/type configuration register:
  511. Bit(s)    Description    (Table P0950)
  512.  7    Sound Blaster base I/O address
  513.     0 = 220h
  514.     1 = 240h
  515.  6    reserved
  516.  5-4    Windows Sound System base I/O address
  517.     00 = 530h
  518.     01 = E80h
  519.     10 = F40h
  520.     11 = 640h
  521.  3-1    reserved
  522.  0    game port enable
  523. SeeAlso: #P0949
  524.  
  525. Bitfields for OPTi "Vendetta" Audio Module SB/WSS configuration register:
  526. Bit(s)    Description    (Table P0951)
  527.  7    reserved
  528.  6    reserved (0 for normal WSS operation)
  529.  5-3    digital audio processor IRQ
  530.     000 = disable
  531.     001 = IRQ7
  532.     010-100 = IRQ9-IRQ11
  533.     101 = IRQ5
  534.     110-111 = reserved
  535.  2-0    digital audio processor DMA
  536.     000 = disable
  537.     001-010 = QRQ0-DRQ1
  538.     011 = DRQ3
  539.     100 = disable, DRQ1 (if dual channel DMA mode)
  540.     101 = DRQ0, DRQ1 (if dual channel DMA mode)
  541.     110 = DRQ1, DRQ0 (if dual channel DMA mode)
  542.     111 = DRQ3, DRQ0 (if dual channel DMA mode)
  543. SeeAlso: #P0949
  544.  
  545. Bitfields for OPTi "Vendetta" Audio Module user programmable general purpose:
  546. Bit(s)    Description    (Table P0952)
  547.  7-6    playback FIFO flow
  548.     00 = empty
  549.     01 = full-2
  550.     10 = full-4
  551.     11 = not full
  552.  5-4    OPL select
  553.     00 = OPL2
  554.     01 = OPL3
  555.     10 = OPL4
  556.     11 = OPL5
  557.  3    D/A controller zero
  558.     0 = hold
  559.     1 = clear
  560.  2    audio enable
  561.  1-0    Sound Blaster version
  562.     00 = 2.1
  563.     01 = 1.5
  564.     10 = 3.2
  565.     11 = 4.4
  566. SeeAlso: #P0949
  567.  
  568. Bitfields for OPTi "Vendetta" Audio Module option register:
  569. Bit(s)    Description    (Table P0953)
  570.  7-6    reserved
  571.  5    codec expanded mode enable
  572.       (must be set to access expanded mode codec indirect registers
  573.       10h-1Fh)
  574.  4    Sound Blaster ADPCM enable
  575.  3    Sound Blaster command FIFO enable
  576.  2    Sound Blaster Pro mixer voice volume emulation volume effect enable
  577.  1    DMA watchdog timer enable
  578.  0    reserved
  579. SeeAlso: #P0949
  580.  
  581. Bitfields for OPTi "Vendetta" Audio Module MIDI interface register:
  582. Bit(s)    Description    (Table P0954)
  583.  7    MPU-401 enable
  584.  6-5    MPU-401 base address
  585.     00 = 330h
  586.     01 = 320h
  587.     10 = 310h
  588.     11 = 300h
  589.  4-3    MPU-401 IRQ
  590.     00 = IRQ9
  591.     01 = IRQ10
  592.     10 = IRQ5
  593.     11 = IRQ7
  594.  2    reserved
  595.  1    Windows Sound System mode enable
  596.  0    Sound Blaster mode enable
  597. SeeAlso: #P0949
  598.  
  599. Bitfields for OPTi "Vendetta" Audio Module test control register 1:
  600. Bit(s)    Description    (Table P0955)
  601.  7    digital power-down
  602.  6    analog power-down
  603.  5-2    reserved
  604.  1    software reset enable
  605.  0    reserved
  606. SeeAlso: #P0949
  607.  
  608. Bitfields for OPTi "Vendetta" Audio Module test control register 2:
  609. Bit(s)    Description    (Table P0956)
  610.  7    playback reset
  611.  6    capture reset
  612.  3    PNP test
  613.  2-0    reserved
  614. SeeAlso: #P0949
  615.  
  616. Bitfields for OPTi "Vendetta" Audio Module status register:
  617. Bit(s)    Description    (Table P0957)
  618.  7    playback DMA pending
  619.  6    capture DMA pending
  620.  5    MPU interrupt pending
  621.  4    reserved
  622.  3    capture interrupt pending
  623.  2    playback interrupt pending
  624.  1    playback FIFO empty
  625.  0    capture FIFO empty
  626. SeeAlso: #P0949
  627.  
  628. Bitfields for OPTi "Vendetta" Audio Module test register:
  629. Bit(s)    Description    (Table P0958)
  630.  7-5    reserved
  631.  4    digital test output high/low byte (write-only)
  632.  3-0    digital test output select (write-only)
  633. SeeAlso: #P0949
  634.  
  635. Bitfields for OPTi "Vendetta" Audio Module PNP status register:
  636. Bit(s)    Description    (Table P0959)
  637.  7    CSN not 0, active high
  638.     1 = CSN assigned by PNP configuration manager
  639.  6-5    reserved
  640.  4    audio module logical device enable
  641.  3    1 = audio module PNP logic in CONFIG mode
  642.  2    1 = audio module PNP logic in ISOLATE mode
  643.  1    1 = audio module PNP logic in SLEEP mode
  644.  0    1 = audio module PNP logic in WAIT4KEY mode
  645. SeeAlso: #P0949
  646.  
  647. Bitfields for OPTi "Vendetta" Audio Module volume control register:
  648. Bit(s)    Description    (Table P0960)
  649.  7-4    reserved
  650.  3    master volume mute
  651.  2-0    reserved
  652. SeeAlso: #P0949
  653.  
  654. Bitfields for OPTi "Vendetta" Audio Module CONFIG status register:
  655. Bit(s)    Description    (Table P0961)
  656.  7    reserved
  657.  6    ASIO enable
  658.  5-4    reserved
  659.  3-0    chip revision ID (read-only)
  660. SeeAlso: #P0949
  661.  
  662. Bitfields for OPTi "Vendetta" Audio Module FM control register:
  663. Bit(s)    Description    (Table P0962)
  664.  7-3    reserved
  665.  2    mega bass enable
  666.  1    enhanced FM feature OPTi mode enable
  667.  0    external FM enable
  668. SeeAlso: #P0949
  669.  
  670. Bitfields for OPTi "Vendetta" Audio Module serial audio control register 0:
  671. Bit(s)    Description    (Table P0963)
  672.  7-6    FDAC clock controller
  673.     00 = reserved
  674.     01 = internal FM
  675.     10 = reserved
  676.     11 = external serial audio
  677.  5-2    reserved
  678.  1    FDAC data
  679.     0 = internal FM
  680.     1 = external serial audio
  681.  0    reserved
  682. SeeAlso: #P0949
  683.  
  684. Bitfields for OPTi "Vendetta" Audio Module serial audio control register 1:
  685. Bit(s)    Description    (Table P0964)
  686.  7    ASIO reset
  687.  6    ASIO test
  688.  5-4    reserved
  689.  3    SCLK polarity
  690.     0 = reverse
  691.     1 = no change
  692.  2    FSYNC polarity
  693.     0 = reverse
  694.     1 = no change
  695.  1-0    reserved
  696. SeeAlso: #P0949
  697. ----------P0xx00xxF--------------------------
  698. PORT 0xx0-0xxF - Intel 82595TX - ISA/PCMCIA Ethernet Controller
  699. Range:    at any multiple of 16 in first 1024 I/O addresses
  700.  
  701. +000  RW  command register (see #P0965)
  702. --- I/O bank 0 ---
  703. +001  RW  status register (see #P0966)
  704. +002  RW  id register (see #P0967)
  705. +003  RW  mask register (see #P0968)
  706. +004  RW  RCV CAR/BAR low
  707. +005  RW  RCV CAR/BAR high
  708. +006  RW  RCV STOP REG low
  709. +007  RW  RCV STOP REG high
  710. +008  RW  RCV copy treshold REG
  711. +009  RW  reserved
  712. +00A  RW  XMT CAR/BAR low
  713. +00B  RW  XMT CAR/BAR high
  714. +00C  RW  host address reg/32-bit I/O (byte 0) low
  715. +00D  RW  host address reg/32-bit I/O (byte 1) high
  716. +00E  RW  local memory/32-bit I/O (byte 2) IO port low
  717. +00F  RW  local memory/32-bit I/O (byte 3) IO port high
  718. --- I/O bank 1 ---
  719. +001  RW  bank 1 register 1 (see #P0969)
  720. +002  RW  int select register (see #P0970)
  721. +003  RW  I/O mapping register (see #P0971)
  722. +004  RW  reserved
  723. +005  RW  reserved
  724. +006  RW  reserved
  725. +007  RW  RCV BOF treshold reg
  726. +008  RW  RCV lower limit reg high byte
  727. +009  RW  RCV upper limit reg high byte
  728. +00A  RW  XMT lower limit reg high byte
  729. +00B  RW  XMT upper limit reg high byte
  730. +00C  RW  FLASH control register (see #P0972)
  731. +00D  RW  bank 1 register 13 (see #P0973)
  732. +00E  RW  reserved
  733. +00F  RW  reserved
  734. --- I/O bank 2 ---
  735. +001  RW  bank 2 register 1 (see #P0974)
  736. +002  RW  bank 2 register 2 (see #P0975)
  737. +003  RW  bank 2 register 3 (see #P0976)
  738. +004  RW  individual address register 0
  739. +005  RW  individual address register 1
  740. +006  RW  individual address register 2
  741. +007  RW  individual address register 3
  742. +008  RW  individual address register 4
  743. +009  RW  individual address register 5
  744. +00A  RW  bank 2 register 10 (see #P0977)
  745. +00B  RW  RCV NO resource counter
  746. +00C  RW  IAPROM IO port
  747. +00D  RW  reserved
  748. +00E  RW  reserved
  749. +00F  RW  reserved
  750. ------
  751.  
  752. Bitfields for Intel 82595TX command register:
  753. Bit(s)    Description    (Table P0965)
  754.  7-6    bank pointer (if switch bank command written; ignored for other
  755.       commands)
  756.     00 = bank 0
  757.     01 = bank 1
  758.     10 = bank 2
  759.  5    command (other than transmit) aborted (read-only; should be written 0)
  760.  4-0    (write) command OP code
  761.     00h = switch bank/nop
  762.     03h = MC-setup
  763.     04h = transmit
  764.     05h = TDR
  765.     06h = dump
  766.     07h = diagnose
  767.     08h = RCV enable
  768.     0Ah = RCV disable
  769.     0Bh = RCV stop
  770.     0Dh = abort
  771.     0Eh = reset
  772.     14h = XMT no CRC/SA
  773.     15h = cont XMT test
  774.     16h = set tristate
  775.     17h = reset tristate
  776.     18h = power down
  777.     1Ch = resume XMT list
  778.     1Eh = sel reset
  779.     (read) execution event (MC done, init done, TDR done, DIAG done)
  780.       (if bank 0 register 1 bit 3 = 1)
  781. SeeAlso: #P0966,#P0968
  782.  
  783. Bitfields for Intel 82595TX status register:
  784. Bit(s)    Description    (Table P0966)
  785.  7-6    RCV states
  786.  5-4    EXEC states
  787.  3    EXEC INT
  788.  2    TX INT
  789.  1    RX INT
  790.  0    RX STP INT
  791. SeeAlso: #P0965,#P0967,#P0968
  792.  
  793. Bitfields for Intel 82595TX id register:
  794. Bit(s)    Description    (Table P0967)
  795.  7-6    counter
  796.  5    reserved (1)
  797.  4    auto enable
  798.  3-2    reserved (01)
  799.  1-0    reserved (0)
  800. SeeAlso: #P0965,#P0966,#P0968
  801.  
  802. Bitfields for Intel 82595TX mask register:
  803. Bit(s)    Description    (Table P0968)
  804.  7-6    reserved
  805.  5    cur/base
  806.  4    32IO/HAR
  807.  3    EXEC mask
  808.  2    TX mask
  809.  1    RX mask
  810.  0    RX STP mask
  811. SeeAlso: #P0965,#P0966,#P0969
  812.  
  813. Bitfields for Intel 82595TX bank 1 register 1:
  814. Bit(s)    Description    (Table P0969)
  815.  7    tri-st INT
  816.  6    alt RDY tm
  817.  5-2    reserved
  818.  1    host bus wd
  819.  0    reserved
  820. SeeAlso: #P0965,#P0967,#P0970
  821.  
  822. Bitfields for Intel 82595TX int select register:
  823. Bit(s)    Description    (Table P0970)
  824.  7    FL/BT detect
  825.  6-4    boot EPROM/FLASH decode window
  826.  3    reserved
  827.  2-0    INT select
  828.  
  829. Bitfields for Intel 82595TX I/O mapping register:
  830. Bit(s)    Description    (Table P0971)
  831.  7-6    reserved
  832.  5-0    I/O mapping window
  833.  
  834. Bitfields for Intel 82595TX FLASH control register:
  835. Bit(s)    Description    (Table P0972)
  836.  7-6    FLASH page select high
  837.  5-4    FLASH write enable
  838.  3-0    FLASH page select
  839.  
  840. Bitfields for Intel 82595TX bank 1 register 13:
  841. Bit(s)    Description    (Table P0973)
  842.  7-3    reserved
  843.  2    SMOUT out en
  844.  1    AL RDY test
  845.  0    AL RDY PAS/FL
  846.  
  847. Bitfields for Intel 82595TX bank 2 register 1:
  848. Bit(s)    Description    (Table P0974)
  849.  7    disc bad fr
  850.  6    TX chn ErStp
  851.  5    TX chn int md
  852.  4    PCMCIA/ISA
  853.  3-1    reserved
  854.  0    TX con proc en
  855.  
  856. Bitfields for Intel 82595TX bank 2 register 2:
  857. Bit(s)    Description    (Table P0975)
  858.  7-6    loopback
  859.  5    multi IA
  860.  4    no SA ins
  861.  3    length enable
  862.  2    RX CRC InMem
  863.  1    BC DIS
  864.  0    PRMSC mode
  865.  
  866. Bitfields for Intel 82595TX bank 2 register 3:
  867. Bit(s)    Description    (Table P0976)
  868.  7    test 1
  869.  6    test 2
  870.  5    BNC/TPE
  871.  4    APORT
  872.  3    jabber disable
  873.  2    TPE/AUI
  874.  1    pol/corr
  875.  0    lnk in disable
  876.  
  877. Bitfields for Intel 82595TX bank 2 register 10:
  878. Bit(s)    Description    (Table P0977)
  879.  7-5    stepping
  880.  4    trnoff enable
  881.  3    EEDO
  882.  2    EEDI
  883.  1    EECS
  884.  0    EESK
  885. --------X-P100010FF--------------------------
  886. PORT 1000-10FF - available for EISA slot 1
  887. ----------P12E812EF--------------------------
  888. PORT 12E8-12EF - 8514/A and compatible (e.g. ATI Graphics Ultra) - VERT TOTAL
  889.  
  890. 12E8w -W  CRT control: vertical total
  891. --------V-P12EE------------------------------
  892. PORT 12EE - ATI Mach32 - CONFIGURATION STATUS 0
  893. SeeAlso: PORT 16EEh"Mach32",PORT 42EEh"Mach32",PORT 52EEh"Mach32"
  894. ----------P13901393--------------------------
  895. PORT 1390-1393 - cluster (adapter 3)
  896. ----------P13C6------------------------------
  897. PORT 13C6 - Compaq - ???
  898. Note:    this port is read by the Compaq MS-DOS 4.0/5.0 CHARSET utility
  899.  
  900. 13C6  R?  Compaq video status??? (see #P0978)
  901.  
  902. Bitfields for Compaq video status???:
  903. Bit(s)    Description    (Table P0978)
  904.  7    ???
  905.  6    flag
  906.  5-3    ???
  907.  2-0    status of display???
  908. --------X-P140014FF--------------------------
  909. PORT 1400-14FF - available for EISA slot 1
  910. ----------P16E816EF--------------------------
  911. PORT 16E8-16EF - 8514/A and compatible (e.g. ATI Graphics Ultra) - VERT DISPLYD
  912.  
  913. 16E8w -W  CRT control: vertical displayed
  914. --------V-P16EE------------------------------
  915. PORT 16EE - ATI Mach32 - CONFIGURATION STATUS 1
  916. SeeAlso: PORT 12EEh"Mach32",PORT 42EEh"Mach32",PORT 52EEh"Mach32"
  917. --------X-P180018FF--------------------------
  918. PORT 1800-18FF - available for EISA slot 1
  919. ----------P1AE81AEF--------------------------
  920. PORT 1AE8-1AEF - 8514/A and compatible (e.g. ATI Graphics Ultra) - VSYNC START
  921.  
  922. 1AE8w -W  CRT control: vertical sync start
  923. --------X-P1C001CFF--------------------------
  924. PORT 1C00-1CFF - available for EISA slot 1
  925. --------d-P1C001CBF--------------------------
  926. PORT 1C00-1CBF -  Adaptec AIC-777x EISA SCSI controller in EISA slot 1
  927. Notes:    Adaptec AIC-777x SCSI controllers have on-board PhaseEngine SCSI
  928.       sequence processor which executes its instructions from the 2-Kbyte
  929.       sequencer RAM; it treats all of the CPU-addressable registers as its
  930.       data memory
  931.     AIC-777x SCSI controllers have special on-board RAM and queue registers
  932.       for queueing the requests sent from the drivers and BIOS to the
  933.       PhaseEngine processor
  934.     Adaptec AHA-284x is a VLB SCSI controller based on AIC-7770; it has
  935.       a serial EEPROM (93C46) for storing various configuration settings
  936. SeeAlso: PORT 0340h-035Fh"Adaptec AHA-152x",PORT xxxxh"Adaptec AIC-78xx"
  937.  
  938. +000  RW  SCSI sequence control register (SCSISEQ) (see #P0600)
  939. +001  RW  SCSI transfer control register 0 (SXFRCTL0) (see #P0979)
  940. +002  RW  SCSI transfer control register 1 (SXFRCTL1) (see #P0980)
  941. +003  R-  SCSI control signal read  register (SCSISIGI) (see #P0603)
  942. +003  -W  SCSI control signal write register (SCSISIGO) (see #P0604)
  943. +004  RW  SCSI rate control register (SCSIRATE) (see #P0981)
  944. +005  RW  SCSI ID register (SCSIID) (see #P0982)
  945. +006  RW  SCSI latched data low register (SCSIDATL)
  946.       read/write causes -ACK to pulse
  947. +007  RW  (Wide SCSI) SCSI latched data high register (SCSIDATH)
  948.       read/write causes -ACK to pulse
  949. +008  RW  SCSI transfer count register (STCNT) (3 bytes long)
  950. +00B  R-  SCSI status register 0 (SSTAT0) (see #P0607)
  951. +00B  -W  clear SCSI interrupt register 0 (CLRSINT0) (see #P0983)
  952. +00C  R-  SCSI status register 1 (SSTAT1) (see #P0609)
  953. +00C  -W  clear SCSI interrupt register 1 (CLRSINT1) (see #P0610)
  954. +00D  R-  SCSI status register 2 (SSTAT2) (see #P0984)
  955. +00E  R-  SCSI status register 3 (SSTAT3) (see #P0612)
  956. +00F  RW  SCSI test control register (SCSITEST) (see #P0985)
  957. +010  RW  SCSI interrupt mode register 0 (SIMODE0) (see #P0616)
  958. +011  RW  SCSI interrupt mode register 1 (SIMODE1) (see #P0617)
  959. +012  RW  SCSI data bus low register (SCSIBUSL)
  960. +013  RW  (Wide SCSI) SCSI data bus high register (SCSIBUSH)
  961. +014d R-  SCSI/host address register (SHADDR)
  962. +018  RW  selection timeout timer  register (SELTIMER) (see #P0986)
  963. +019  RW  selection/reselection ID register (SELID) (see #P0987)
  964. +01F  RW  SCSI block control register (SBLKCTL) (see #P0988)
  965. +020  RW  scratch RAM (64 bytes) (see #P1002)
  966. +060  RW  sequencer control  register (SEQCTL)    (see #P0989)
  967. +061  RW  sequencer RAM data register (SEQRAM)
  968. +062w RW  sequencer address  register (SEQADDR) (see #P0990)
  969. +064  RW  accumulator  register (ACCUM)
  970. +065  RW  source index register (SINDEX)
  971. +066  RW  destination index register (DINDEX)
  972. +069  R-  all ones register (ALLONES)
  973.       always reads as FFh
  974. +06A  R-  all zeros register (ALLZEROS)
  975.       always reads as 00h
  976. +06B  R-  flags register (FLAGS) (see #P0991)
  977.       PhaseEngine processor's flags
  978. +06C  R-  source indirect register (SINDIR)
  979. +06D  -W  destination indirect register (DINDIR)
  980. +06E  RW  function 1 register (FUNCTION1)
  981. +06F  R-  "STACK"
  982. +084  RW  board control register (BCTL) (see #P0992)
  983. +085  RW  bus on/off time register (BUSTIME) (see #P0993)
  984. +086  RW  bus speed register (BUSSPD) (see #P0994)
  985. +087  RW  host control register (HCNTRL) (see #P0995)
  986. +088d RW  host address register (HADDR)
  987. +08C  RW  host counter register (HCNT) (3 bytes long)
  988. +090  RW  sequence control block (SCB) pointer register (SCBPTR)
  989. +091  RW  interrupt status register (INTSTAT) (see #P0996)
  990. +092  R-  hard error register (ERROR) (see #P0997)
  991. +092  -W  clear interrupt status register (CLRINT) (see #P0998)
  992. +093  RW  DMA FIFO control register (DFCNTRL)  (see #P0999)
  993. +094  R-  DMA FIFO status  register (DFSTATUS) (see #P1000)
  994. +099  RW  DMA FIFO data register (DFDAT)
  995. +09A  RW  SCB auto-increment register (SCBCNT) (see #P1001)
  996. +09B  RW  queue in FIFO register (QINFIFO)
  997.       write places the value into the FIFO, read removes
  998. +09C  R-  queue in count register (QINCNT)
  999.       number of the SCBs in the queue in
  1000. +09D  R-  queue out FIFO register (QOUTFIFO)
  1001.       read removes the value from the FIFO
  1002. +09E  R-  queue out count register (QOUTCNT)
  1003.       number of the SCBs in the queue out
  1004. +0A0  RW  SCB array (32 bytes) (see #P1003)
  1005. +0C0  RW  (AHA-284x) serial EEPROM control register (SEECTL) (see #P1005)
  1006. +0C1  RW  (AHA-284x) "STATUS" (see #P1006)
  1007. Notes:    the SCSI latched data registers are used to transfer data on the SCSI
  1008.       bus during automatic or manual PIO mode
  1009.     in a twin channel configuration the separate register set with the
  1010.       addresses 00h-1Eh exists for each channel
  1011.     the SCSI/host address register (SHADDR) holds the host address for the
  1012.       byte about to be transfered on the SCSI bus; it is counted up in the
  1013.       same manner as SCSI transfer count register (STCNT) is counted down
  1014.       and should always be used to determine the address of the last byte
  1015.       transfered since the host address register (HADDR) can be skewed by
  1016.       read ahead
  1017.     the source/destination index registers (SINDEX/DINDEX) are used by the
  1018.       PhaseEngine processor to indirectly address the data memory (i.e. the
  1019.       CPU-addressable registers); the data byte addressed can be accessed
  1020.       through the source/destination indirect registers (SINDIR/DINDIR)
  1021.       respectively; the source index register (SINDEX) is auto-incremented
  1022.       on each read from the source indirect register (SINDIR), while the
  1023.       destination index register (DINDEX) is auto-incremented on each write
  1024.       to the destination indirect register (DINDIR)
  1025.     the function 1 register (FUNCTION1) is used to convert the SCSI target
  1026.       number to the corresponding bit mask; first, bits 6-4 are written
  1027.       with a number N (other bits seems to be "don't care"), then the
  1028.       register is read back, giving the bit mask having bit N set and all
  1029.       other bits cleared
  1030.     the host address register (HADDR) and the host counter register (HCNT)
  1031.       are used for the DMA transfers from/to the host memory
  1032.     the SCB pointer register (SCBPTR) selects the 32-byte area of the SCB
  1033.       RAM to be mapped at addresses A0h-BFh
  1034.     the queue in/out FIFO registers (QINFIO/QOUTFIFO) hold the queue of
  1035.       the SCB pointer register's (SCBPTR) values for addressing the SCBs
  1036.       sent by CPU to the PhaseEngine processor and returned to CPU (when
  1037.       the associated SCSI command completes) respectively; CPU selects
  1038.       the SCB RAM area via the SCB pointer register (SCBPTR), downloads
  1039.       prepared SCB to addresses A0h-BFh (this requeires the PhaseEngine
  1040.       processor to be paused), then places the SCB pointer value to the
  1041.       queue in FIFO by writing it to the respective register, from which
  1042.       the SCB pointers can be read (and removed) in the FIFO order; the
  1043.       PhaseEngine processor places the SCB pointer of the completed CCB
  1044.       to the queue out FIFO by writing the respective register, and CPU
  1045.       can remove it from the FIFO by reading the register
  1046.  
  1047. Bitfields for SCSI transfer control register 0 (SXFRCTL0):
  1048. Bit(s)    Description    (Table P0979)
  1049.  7    DMA FIFO on? (DFON)
  1050.  6    "DFPEXP"
  1051.  5    (Ultra SCSI) Ultra SCSI enable (ULTRAEN)
  1052.  4    clear SCSI transfer counter (CLRSTCNT)
  1053.  3    SCSI PIO enable (SPIOEN)
  1054.  2    SCAM enable (SCAMEN)
  1055.  1    clear channel (CLRCHN)
  1056.  0    reserved
  1057. SeeAlso: #P0607,#P0618,#P0620,#P0980,#P0984
  1058.  
  1059. Bitfields for SCSI transfer control register 1 (SXFRCTL1):
  1060. Bit(s)    Description    (Table P0980)
  1061.  7    bit bucket (BITBUCKET)
  1062.  6    SCSI counter wrap enable (SWRAPEN)
  1063.  5    enable SCSI parity check (ENSPCHK)
  1064.  4-3    selection time-out select (STIMESEL)
  1065.     00 256 ms
  1066.     01 128 ms
  1067.     10 64  ms
  1068.     11 32  ms
  1069.  2    enable selection timer (ENSTIMER)
  1070.  1    active negation enable (ACTNEGEN)
  1071.  0    SCSI terminator power enable? (STPWEN)
  1072. SeeAlso: #P0600,#P0979,#P0986
  1073.  
  1074. Bitfields for SCSI rate control register (SCSIRATE):
  1075. Bit(s)    Description    (Table P0981)
  1076.  7    (Wide SCSI) wide transfer control (WIDEXFER)
  1077.  6-4    synchronous transfer rate (SXFR)
  1078.  3-0    synchronous offset (SOFS)
  1079. SeeAlso: #P0605,#P0984
  1080.  
  1081. Bitfields for SCSI ID register (SCSIID):
  1082. Bit(s)    Description    (Table P0982)
  1083.  7-4    target ID (TID)
  1084.  3-0    our ID (OID)
  1085. SeeAlso: #P0606,#P0987,#P1012
  1086.  
  1087. Bitfields for clear SCSI interrupt register 0 (CLRSINT0):
  1088. Bit(s)    Description    (Table P0983)
  1089.  7    reserved?
  1090.  6    clear selection out done (CLRSELDO)
  1091.  5    clear selection in  done (CLRSELDI)
  1092.  4    clear selection in progress (CLRSELINGO)
  1093.  3    clear SCSI counter wrap (CLRSWRAP)
  1094.  2    reserved
  1095.  1    clear SCSI PIO ready (CLRSPIORDY)
  1096.  0    reserved
  1097. SeeAlso: #P0600,#P0601,#P0607,#P0608,#P0616
  1098.  
  1099. Bitfields for SCSI status register 2 (SSTAT2):
  1100. Bit(s)    Description    (Table P0984)
  1101.  7    "OVERRUN"
  1102.  6-5    reserved
  1103.  4-0    SCSI FIFO count? (SFCNT)
  1104. SeeAlso: #P0979,#P0981
  1105.  
  1106. Bitfields for SCSI test control register (SCSITEST):
  1107. Bit(s)    Description    (Table P0985)
  1108.  7-3    reserved
  1109.  2    "RQAKCNT"
  1110.  1    "CNTRTEST"
  1111.  0    "CMODE"
  1112. SeeAlso: #P0988
  1113.  
  1114. Bitfields for selection timeout timer register (SELTIMER):
  1115. Bit(s)    Description    (Table P0986)
  1116.  7-6    reserved
  1117.  5    "STAGE6"
  1118.  4    "STAGE5"
  1119.  3    "STAGE4"
  1120.  2    "STAGE3"
  1121.  1    "STAGE2"
  1122.  0    "STAGE1"
  1123. SeeAlso: #P0980
  1124.  
  1125. Bitfields for selection/reselection ID register (SELID):
  1126. Bit(s)    Description    (Table P0987)
  1127.  7-4    selecting device ID (SELID)
  1128.  3    one bit (ONEBIT)
  1129.  2-0    reserved
  1130. Note:    bit 3 is set when the selecting/reselecting device did not set its own
  1131.       ID on the SCSI bus
  1132. SeeAlso: #P0600,#P0607,#P0982
  1133.  
  1134.  
  1135. Bitfields for SCSI block control register (SBLKCTL):
  1136. Bit(s)    Description    (Table P0988)
  1137.  7-6    reserved
  1138.  5    auto-flush disable (AUTOFLUSHDIS)
  1139.  4    reserved
  1140.  3    select bus (SELBUS)
  1141.     =0 select bus A
  1142.     =1 select bus B (SELBUSB)
  1143.  2    reserved
  1144.  1    "SELWIDE"
  1145.  0    reserved
  1146. Notes:    bit 1 allows for the coexistence of 8-bit and 16-bit devices on a Wide
  1147.       SCSI bus
  1148.     in a twin channel configuration addresses 00h-1Eh are gated to the
  1149.       appropriate channel based on the value of bit 3
  1150.     bit 5 is read only on the AIC-7770 revisions prior to E
  1151.  
  1152. Bitfields for sequencer control register (SEQCTL):
  1153. Bit(s)    Description    (Table P0989)
  1154.  7    parity error disable (PERRORDIS)
  1155.  6    pause disable (PAUSEDIS)
  1156.  5    "FAILDIS"
  1157.  4    fast mode (FASTMODE)
  1158.  3    break address interrupt enable (BRKADRINTEN)
  1159.  2    "STEP"
  1160.  1    sequencer reset (SEQRESET)
  1161.  0    load sequencer RAM (LOADRAM)
  1162. Notes:    setting bit 1 causes the sequencer to be paused; the sequencer address
  1163.       register is reset to 0
  1164.     bit 7 should be reset while loading the sequencer RAM; after loading
  1165.       is complete, bit 0 should be cleared before changing the sequencer
  1166.       address register (SEQADDR) to avoid sequencer RAM parity errors
  1167. SeeAlso: #P0990,#P0996,#P0997,#P0998,#P1014
  1168.  
  1169. Bitfields for sequencer address register (SEQADDR):
  1170. Bit(s)    Description    (Table P0990)
  1171.  15-9    reserved
  1172.  8-0    sequencer RAM address
  1173. Notes:    bits 8-0 contain the address of a DWORD in the sequencer RAM; it points
  1174.       to the next instruction to be execute or load into RAM
  1175.     setting bit 1 in the sequencer control register (SEQCTL) resets this
  1176.       address to 0
  1177.     when the PhaseEngine processor is paused, the sequencer address can be
  1178.       altered and a sequencer program can be loaded by writing it, byte by
  1179.       byte, to the sequencer RAM data register (SEQRAM); the address is
  1180.       auto-incremented after the high BYTE of each DWORD is loaded
  1181. SeeAlso: #P0989,#P1014
  1182.  
  1183. Bitfields for flags register (FLAGS):
  1184. Bit(s)    Description    (Table P0991)
  1185.  7-2    reserved
  1186.  1    zero  flag (ZERO)
  1187.  0    carry flag (CARRY)
  1188. SeeAlso: #P1014
  1189.  
  1190. Bitfields for board control register (BCTL):
  1191. Bit(s)    Description    (Table P0992)
  1192.  7-4    reserved
  1193.  3    "ACE"
  1194.  2-1    reserved
  1195.  0    enable board (ENABLE)
  1196. Note:    bit 3 is somehow related to the support for the external processors
  1197.  
  1198. Bitfields for bus on/off time register (BUSTIME):
  1199. Bit(s)    Description    (Table P0993)
  1200.  7-4    bus off time (BOFF)
  1201.     in 4 BCLK cycle units?
  1202.  3-0    bus on    time (BON)
  1203. SeeAlso: #P0994,#P1002
  1204.  
  1205. Bitfields for bus speed register (BUSSPD):
  1206. Bit(s)    Description    (Table P0994)
  1207.  7-6    DMA FIFO threshold (DFTHRSH)
  1208.     11 100?
  1209.  5-3    "STBOFF"
  1210.  2-0    "STBON"
  1211. SeeAlso: #P0993,#P0999,#P1000,#P1002
  1212.  
  1213. Bitfields for host control register (HCNTRL):
  1214. Bit(s)    Description    (Table P0995)
  1215.  7    reserved
  1216.  6    power down (POWRDN)
  1217.  5    reserved
  1218.  4    software interrupt (SWINT)
  1219.  3    IRQ mode select (IRQMS)
  1220.     =0 level-sensitive
  1221.     =1 edge-triggered
  1222.  2    pause sequencer (PAUSE)
  1223.  1    interrupt enable (INTEN)
  1224.  0    chip reset (CHIPRST)
  1225. Notes:    bit 0 is self-clearing (though on some AIC-7771 based boards it stucks
  1226.       set, and must be manually cleared)
  1227.     set bit 2 to pause the sequencer, then poll the register until this bit
  1228.       reads as 1 indicating that the sequencer has actually stopped; the
  1229.       sequencer can disable pausing for critical sections through bit 6 of
  1230.       the sequencer control register (SEQCTL)
  1231. SeeAlso: #P0989,#P1014
  1232.  
  1233. Bitfields for interrupt status register (INTSTAT):
  1234. Bit(s)    Description    (Table P0996)
  1235.  7-4    sequencer status
  1236.     0000 unknown SCSI bus phase (BAD_PHASE)
  1237.     0001 sending MESSAGE REJECT (SEND_REJECT)
  1238.     0010 no IDENTIFY after reconnect (NO_IDENT)
  1239.     0011 no command match for reconnect (NO_MATCH)
  1240.     0100 SYNCRONOUS DATA TRANSFER REQUEST (SDTR) message received (SDTR_MSG)
  1241.     0101 WIDE DATA TRANSFER REQUEST (WDTR) message received (WDTR_MSG)
  1242.     0110 MESSAGE REJECT received (REJECT_MSG)
  1243.     0111 bad status from target (BAD_STATUS)
  1244.     1000 residual byte count non-zero (RESIDUAL)
  1245.     1001 sent ABORT TAG message (ABORT_TAG)
  1246.     1010 awaiting message
  1247.     1011 immediate command completed (IMMEDDONE)
  1248.     1100 message buffer busy (MSG_BUFFER_BUSY)
  1249.     1101 MESSAGE IN phase mismatch (MSGIN_PHASEMIS)
  1250.     1110 data overrun (DATA_OVERRUN)
  1251.  3    break address interrupt (BRKADRINT)
  1252.  2    SCSI interrupt (SCSIINT)
  1253.  1    command complete interrupt (CMDCMPLT)
  1254.  0    sequencer interrupt (SEQINT)
  1255. Notes:    the PhaseEngine processor can set bit 0 to interrupt the CPU requesting
  1256.       some service from it; an interrupt reason is passed in bits 7-4
  1257.     the PhaseEngine processor sets bit 1 after placing a completed SCB into
  1258.       the queue out FIFO
  1259.     setting bit 0 pauses the PhaseEngine processor; it needs unpausing via
  1260.       resetting bit 2 of the host control register (HCNTRL)
  1261. SeeAlso: #P0986,#P0993,#P0995,#P1014
  1262.  
  1263. Bitfields for hard error register (ERROR):
  1264. Bit(s)    Description    (Table P0997)
  1265.  7-4    reserved
  1266.  3    sequencer RAM parity error (PARERR)
  1267.  2    illegal opcode in sequencer program (ILLOPCODE)
  1268.  1    illegal sequencer address referenced (ILLSADDR)
  1269.  0    illegal host access (ILLHADDR)
  1270. Note:    usually a full board reset is required after detecting a hard error
  1271. SeeAlso: #P1014
  1272.  
  1273. Bitfields for clear interrupt status register (CLRINT):
  1274. Bit(s)    Description    (Table P0998)
  1275.  7-4    reserved
  1276.  3    clear break address interrupt (CLRBRKADRINT)
  1277.  2    clear SCSI interrupt (CLRSCSIINT)
  1278.  1    clear command complete interrupt (CLRCMDINT)
  1279.  0    clear sequencer interrupt (CLRSEQINT)
  1280. SeeAlso: #P0986,#P0991,#P1014
  1281.  
  1282. Bitfields for DMA FIFO control register (DFCNTRL):
  1283. Bit(s)    Description    (Table P0999)
  1284.  7    reserved
  1285.  6    "WIDEODD"
  1286.  5    SCSI enable (SCSIEN)
  1287.  4    SCSI DMA enable? (SDMAEN)
  1288.  3    host DMA enable? (HDMAEN)
  1289.  2    "DIRECTION"
  1290.     =0 SCSI to host
  1291.     =1 host to SCSI
  1292.  1    FIFO flush (FIFOFLUSH)
  1293.  0    FIFO reset (FIFORESET)
  1294. Notes:    this register allows the PhaseEngine processor to control DMA transfers
  1295.       from/to host memory
  1296.     bits 3 and 4 clear automatically when host and SCSI DMA is complete
  1297.       respectively
  1298. SeeAlso: #P0994,#P1000
  1299.  
  1300. Bitfields for DMA FIFO status register (DFSTATUS):
  1301. Bit(s)    Description    (Table P1000)
  1302.  7-6    reserved
  1303.  5    "DWORDEMP"
  1304.  4    "MREQPEND"
  1305.  3    host DMA done (HDONE)
  1306.  2    DMA FIFO threshold? (DFTHRESH)
  1307.  1    FIFO full  (FIFOFULL)
  1308.  0    FIFO empty (FIFOEMP)
  1309. SeeAlso: #P0994,#P0999
  1310.  
  1311. Bitfields for SCB auto-increment register (SCBCNT):
  1312. Bit(s)    Description    (Table P1001)
  1313.  7    SCB auto-increment (SCBAUTO)
  1314.  6-5    reserved
  1315.  4-0    SCB counter (SCBCNT)
  1316. Note:    this register allows CPU to quickly upload/download the SCBs to/from
  1317.       the SCB RAM; if bit 7 is set any reference to addresses A0h-BFh post-
  1318.       increments bits 4-0 of this register containing the offset into the
  1319.       SCB array which is to be accessed next; on the AHA-284x only 8-bit
  1320.       transfers can be used
  1321. SeeAlso: #P1003
  1322.  
  1323. Format of the scratch RAM:
  1324. Offset    Size    Description    (Table P1002)
  1325.  00h 16 BYTEs    target scratch (TARG_SCRATCH) (see #9025)
  1326.  10h    WORD    channel A Ultra SCSI enable (ULTRA_ENB_A)
  1327.         bit N if set means Ultra SCSI transfers are enabled for the
  1328.           target ID N
  1329.  10h    BYTE    rejected byte (REJBYTE)
  1330.  11h    BYTE    channel B Ultra SCSI enable (ULTRA_ENB_B)
  1331.         bit N if set means Ultra SCSI transfers are enabled for the
  1332.           target ID N
  1333.  11h    BYTE    rejected byte extended (REJBYTE_EXT)
  1334.  11h    BYTE    rejected byte (REJBYTE)
  1335.  12h    BYTE    channel A disable disconnect (DISC_DSB_A)
  1336.  13h    BYTE    channel B disable disconnect (DISC_DSB_B)
  1337.  14h    BYTE    length of pending message (MSG_LEN)
  1338.  15h  8 BYTEs    outgoing message (MSG0-MSG7)
  1339.  15h    BYTE    pending     message flag (MSG_FLAGS)
  1340.  16h    BYTE    length of pending message (MSG_LEN)
  1341.  17h  ? BYTEs    outgoing message body (MSG_START)
  1342.  1Dh    BYTE    parameters for DMA logic (DMAPARAMS) (see #P0999)
  1343.  1Dh    BYTE    last phase (LASTPHASE)
  1344.  1Eh    BYTE    "SEQ_FLAGS"
  1345.         bit 7: "RESELECTED"
  1346.         bit 6: "IDENTIFY_SEEN"
  1347.         bit 5: "TAGGED_SCB"
  1348.         bit 4: data phase seen (DPHASE)
  1349.         bit 3: reserved
  1350.         bit 2: page SCBs (PAGESCBS)
  1351.         bit 1: "WIDE_BUS"
  1352.         bit 0: "TWIN_BUS"
  1353.  1Eh    BYTE    "ARG_1"
  1354.         bit 0: "MAXOFFSET"
  1355.  1Fh    BYTE    saved target/channel/LUN (SAVED_TCL)
  1356.         bits 7-4: target ID
  1357.         bit 3: channel (0=A, 1=B)
  1358.         bits 2-0: LUN
  1359.  1Fh    BYTE    "RETURN_1"
  1360.         00h do nothing
  1361.         10h SCB paged in (SCB_PAGEDIN)
  1362.         20h send MESSAGE REJECT message (SEND_REJ)
  1363.         40h send REQUEST SENSE    command (SEND_SENSE)
  1364.         60h send SYNCHRONOUS DATA TRANSFER REQUEST message (SEND_SDTR)
  1365.         80h send WIDE DATA TRANSFER REQUEST message (SEND_WDTR)
  1366.  20h    BYTE    scatter/gather count (SG_COUNT)
  1367.  20h    BYTE    "SIGSTATE"
  1368.  21h    DWORD    scatter/gather next segment pointer (SG_NEXT)
  1369.  21h    BYTE    parameters for DMA logic (DMAPARAMS) (see #P0999)
  1370.  22h    BYTE    scatter/gather count (SG_COUNT)
  1371.  23h    DWORD    scatter/gather next segment pointer (SG_NEXT)
  1372.  25h    BYTE    waiting SCB list head (WAITING_SCBH)
  1373.  26h    BYTE    saved link pointer (SAVED_LINKPTR)
  1374.  27h    BYTE    saved SCB pointer (SAVED_SCBPTR)
  1375.  27h    BYTE    SCB count (SCBCOUNT)
  1376.         number of SCBs supported in hardware
  1377.  28h    BYTE    last phase (LASTPHASE) (see #9003)
  1378.         bit 7: -C/D input (CDI)
  1379.         bit 6: -I/O input (IOI)
  1380.         bit 5: -MSG input (MSGI)
  1381.         bits 4-0: reserved
  1382.  28h    BYTE    negative SCB count (COMP_SCBCOUNT)
  1383.  29h    BYTE    extended message length (MSGIN_EXT_LEN)
  1384.  29h    BYTE    queue count mask (QCNTMASK)
  1385.         works around a bug in AIC-7850
  1386.  2Ah    BYTE    extended message opcode (MSGIN_EXT_OPCODE)
  1387.  2Ah    BYTE    "FLAGS"
  1388.         bit 7: "RESELECTED"
  1389.         bit 6: IDENTIFY message seen (IDENTIFY_SEEN)
  1390.         bit 5: "SELECTED"
  1391.         bit 4: data phase seen (DPHASE)
  1392.         bit 3: reserved
  1393.         bit 2: page SCBs (PAGESCBS)
  1394.         bit 1: wide bus     (WIDE_BUS)
  1395.         bit 0: twin bus     (TWIN_BUS)
  1396.  2Bh  3    BYTEs    extended message tail bytes (MSGIN_EXT_BYTES)
  1397.  2Bh    BYTE    saved target/channel/LUN (SAVED_TCL)
  1398.         bits 7-4: target ID
  1399.         bit 3: channel (0=A, 1=B)
  1400.         bits 2-0: LUN
  1401.  2Ch    WORD    channel A active targets (ACTIVE_A)
  1402.         bit N is set if there's untagged SCSI command currently active
  1403.           on the target ID N
  1404.  2Ch    BYTE    "ARG_1" or "RETURN_1"
  1405.  2Dh    BYTE    channel B active targets (ACTIVE_B)
  1406.         bit N is set if there's untagged SCSI command currently active
  1407.           on the target ID N
  1408.  2Dh    BYTE    "ARG_2"
  1409.  2Eh    BYTE    disconnected SCB list head (DISCONNECTED_SCBH)
  1410.  2Eh    BYTE    waiting SCB list head (WAITING_SCBH)
  1411.  2Eh    BYTE    signal state (SIGSTATE)
  1412.  2Fh    BYTE    free SCB list head (FREE_SCBH)
  1413.         disconnected SCB list head (DISCONNECTED_SCBH)
  1414.  2Fh    BYTE    "NEEDSDTR"
  1415.         bit N if set means that the synchronous data transfer needs to
  1416.           be negotiated with the target ID N
  1417.  30h    DWORD    "HSCB_ADDR"
  1418.  30h    BYTE    saved link pointer (SAVED_LINKPTR)
  1419.  31h    BYTE    saved SCB  pointer (SAVED_SCBPTR)
  1420.  32h    WORD    channel A Ultra enable (ULTRA_ENB)
  1421.         bit N if set means Ultra SCSI transfers are enabled for the
  1422.           target ID N
  1423.  33h    BYTE    channel B Ultra enable (ULTRA_ENB_B)
  1424.         bit N if set means Ultra SCSI transfers are enabled for the
  1425.           target ID N
  1426.  34h    BYTE    "CUR_SCBID"
  1427.  35h    BYTE    "CMDOUTCNT"
  1428.         count of commands placed in the out FIFO
  1429.  36h    BYTE    SCB count (SCBCOUNT)
  1430.         number of SCBs supported in hardware
  1431.  36h    BYTE    "ARG_1" or "RETURN_1"
  1432.         bit 7: "SEND_MSG"
  1433.         bit 6: "SEND_SENSE"
  1434.         bit 5: "SEND_REJ"
  1435.         bits 4-0: reserved
  1436.  37h    WORD    channel A active targets (ACTIVE_A)
  1437.         bit N is set if there's untagged SCSI command currently active
  1438.           on the target ID N
  1439.  39h    BYTE    reserved
  1440.  3Ah    WORD    SCSI configuration (SCSICONF)
  1441.         bits 15-12: reserved?
  1442.         bits 11-8: (Wide SCSI) our ID (see #P0982)
  1443.         bit 7: (AIC-777x) enable SCSI low byte termination (see #P1011)
  1444.         bit 6: enable SCSI bus reset at power up (RESET_SCSI)
  1445.              (see #P1011)
  1446.         bit 5: enable SCSI parity check (ENSPCHK) (see #P0980)
  1447.         bits 4-3: selection time-out select (STIMESEL) (see #P0980)
  1448.         bits 2-0: our ID (see #P0982)
  1449.  3Bh    BYTE    channel B SCSI configuration
  1450.         see bits 7-0 above
  1451.  3Ch    BYTE    "INTDEF"
  1452.         bits 7-4: reserved?
  1453.         bits 3-0: IRQ number (IRQ9..IRQ12, IRQ14, and IRQ15 are valid)
  1454.  3Dh    BYTE    host configuration (HOSTCONF)
  1455.         bits 7-6: DMA FIFO threshold (DFTHRSH) (see #9038)
  1456.         bits 5-2: bus off time (BOFF) (see #9037)
  1457.         bits 1-0: reserved?
  1458.  3Eh    BYTE    reserved
  1459.  3Fh    BYTE    (AIC-7771) BIOS control (BIOSCTRL)
  1460.         bits 5-4: BIOS mode (BIOSMODE)
  1461.               11 BIOS disabled (BIOSDISABLED)
  1462.         bit 3: channel B is primary (CHANNEL_B_PRIMARY)
  1463. Notes:    the scratch RAM is used for passing information between the driver and
  1464.       BIOS and the code running on the PhaseEngine processor; it serves as
  1465.       a working memory for the PhaseEngine processor as well
  1466.     location definitions overlap due to various sources giving different
  1467.       scratch RAM layouts
  1468.     the PhaseEngine processor uses "ARG_1" and "ARG_2" to pass parameters
  1469.       to the drivers and BIOS during sequencer interrupts; "RETURN_1" is used
  1470.       to return results from the drivers and BIOS to the PhaseEngine code
  1471.     the PhaseEngine processor uses SCB pointer register's (SCBPTR) values
  1472.       to link SCB in the lists, with value FFh indicating the end of list
  1473. SeeAlso: #9047,#9048
  1474.  
  1475. Format of the SCB array:
  1476. Offset    Size    Description    (Table P1003)
  1477.  00h    BYTE    "SCB_CONTROL"
  1478.         bit 7: need WDTR message (NEEDWDTR) or
  1479.                "MK_MESSAGE"
  1480.         bit 6: disconnect enable (DISCENB)
  1481.         bit 5: tagging enable (TAG_ENB)
  1482.         bit 4: need SDTR message (NEEDSDTR) or
  1483.                "MUST_DMAUP_SCB"
  1484.         bit 3: "ABORT_SCB"
  1485.         bit 2: "DISCONNECTED"
  1486.         bits 1-0: command tag type (SCB_TAG_TYPE)
  1487.  01h    BYTE    target/channel/LUN (SCB_TCL)
  1488.         bits 7-4: target ID
  1489.         bit 3: channel (0=A, 1=B)
  1490.         bits 2-0: LUN
  1491.  02h    BYTE    target status (SCB_TARGET_STATUS)
  1492.         SCSI status byte
  1493.  03h    BYTE    scatter/gather count (SCB_SGCOUNT)
  1494.  04h    DWORD    scatter/gather pointer (SCB_SGPTR)
  1495.  08h    BYTE    residual scatter/gather count (SCB_RESID_SGCNT)
  1496.  09h  3 BYTEs    residual data count (SCB_RESID_DCNT)
  1497.  0Ch    DWORD    data pointer (SCB_DATAPTR)
  1498.  10h  3 BYTEs    data count (SCB_DATACNT)
  1499.  13h    BYTE    next linked SCB index (SCB_LINKED_NEXT)
  1500.  14h    DWORD    command pointer (SCB_CMDPTR)
  1501.  18h    BYTE    command length (SCB_CMDLEN)
  1502.  19h    BYTE    command tag (SCB_TAG)
  1503.  1Ah    BYTE    next SCB index (SCB_NEXT)
  1504.  1Bh    BYTE    previous SCB index (SCB_PREV)
  1505.  1Ch  2    WORDs    busy targets (SCB_BUSYTARGETS)
  1506.         bit N is set if there's untagged SCSI command currently active
  1507.           on the target ID N
  1508. SeeAlso: #P1004,#P1014
  1509.  
  1510. Format of the scatter/gather segment:
  1511. Offset    Size    Description    (Table P1004)
  1512.  00h    DWORD    physical address
  1513.  04h    DWORD    length
  1514. SeeAlso: #P1003,#P1014
  1515.  
  1516. Bitfields for AHA-284x serial EEPROM control register (SEECTL):
  1517. Bit(s)    Description    (Table P1005)
  1518.  7-3    reserved
  1519.  2    chip select (CS)
  1520.  1    clock (CK)
  1521.  0    data out (DO)
  1522. Notes:    93C46 serial EEPROM chips have 1024 bits organized into 64 16-bit
  1523.       words and use 6 bits to address each word
  1524.     only the first 32 words of serial EEPROM are used by the Adaptec BIOS
  1525.     bits 2-0 are connected to the chip select, clock, and data out pins of
  1526.       the serial EEPROM respectively
  1527.     bit 1 must be pulled high and then low for a minimum of 750 and 250 ns
  1528.       to provide clocking for the EEPROM chip
  1529.     bit 1 going from low to high causes the EEPROM chip to sample the data
  1530.       out pin and initiates the next bit to be sent through the data in pin
  1531.     bit 2 must be set for a minimum of 1 mcs with the bit 1 goig high and
  1532.       then low for the EEPROM chip to be selected; then the instruction can
  1533.       be sent to the EEPROM chip
  1534.     instruction can be terminated by taking the EEPROM chip select pin low,
  1535.       with the bit 1 going high and low
  1536. SeeAlso: #P1006,#P1007,#P1008
  1537.  
  1538. Bitfields for AHA-284x "STATUS" register:
  1539. Bit(s)    Description    (Table P1006)
  1540.  7    EEPROM timer fired? (EEPROM_TF)
  1541.  6-5    "BIOS_SEL"
  1542.  4-1    "ADSEL"
  1543.  0    data in (DI)
  1544. Notes:    bit 0 is connected to the data in pin of the serial EEPROM; it can be
  1545.       read after the clock pin goes from high to low
  1546.     bit 7 is cleared after a read from the serial EEPROM control register
  1547.       (SEECTL) and goes high 800 ns later
  1548. SeeAlso: #P1005,#P1007,#P1008
  1549.  
  1550. (Table P1007)
  1551. Values for the 93C46 serial EEPROM instructions:
  1552. Opcode       Function  Parameter    Description
  1553. 0000xxxxb  EWDS         -        disable all programming instructions
  1554. 0001xxxxb  WRAL         D15..D0    write to all registers
  1555. 0010xxxxb  ERAL         -        erase all registers
  1556. 0011xxxxb  EWEN         -        write enable
  1557.                 must precede all programming modes
  1558. 01AAAAAAb  WRITE     D15..D0    write register with address A5..A0
  1559. 10AAAAAAb  READ         -        read registers starting with address A5..A0
  1560. 11AAAAAAb  ERASE     -        erase register with address A5..A0
  1561. Notes:    while the chip select pin remains high an instuction and the optional
  1562.       parameter word can be clocked in MSB first, beginning with the start
  1563.       bit of 1
  1564.     16-bit parameter and data words are transferred MSB first, beginning
  1565.       with the start bit of 0
  1566. SeeAlso: #P1005,#P1006
  1567.  
  1568. Format of the AHA-284x serial EEPROM:
  1569. Address    Size    Description    (Table P1008)
  1570.  00h  16 WORDs    SCSI ID configuration (see #P1009)
  1571.  10h    WORD    BIOS control (see #P1011)
  1572.  11h    WORD    host adapter control (see #P1012)
  1573.  12h    WORD    bus release time / host adapter ID (see #P1013)
  1574.  13h    WORD    maximum targets (see #P1014)
  1575.  14h  11 WORDs    reserved
  1576.  1Fh    WORD    checksum
  1577. SeeAlso: #P1005,#P1006
  1578.  
  1579. Bitfields for the serial EEPROM SCSI ID configuration word:
  1580. Bit(s)    Description    (Table P1009)
  1581.  15-11    reserved
  1582.  10    report even if not found (CFRNFOUND)
  1583.  9    include in BIOS scan (CFINCBIOS)
  1584.  8    send START UNIT SCSI command (CFSTART)
  1585.  7-6    reserved
  1586.  5    (Wide SCSI) wide bus device (CFWIDEB)
  1587.  4    enable disconnection (CFDISC)
  1588.  3    enable synchronous transfer (CFSYNCH)
  1589.  2-0    synchronous transfer rate (CFXFER)
  1590. SeeAlso: #P0605,#P1008
  1591.  
  1592. Bitfields for the serial EEPROM BIOS control word:
  1593. Bit(s)    Description    (Table P1011)
  1594.  15-6    reserved
  1595.  5    extended translation (CFEXTEND)
  1596.  4    support more than 2 drives (CFSM2DRV)
  1597.  3    reserved
  1598.  2    BIOS enabled (CFBIOSEN)
  1599.  1    support removable drives for boot only (CFSUPREMB)
  1600.  0    support all removable drives (CFSUPREM)
  1601. SeeAlso: #P1008
  1602.  
  1603. Bitfields for the serial EEPROM host adapter control word:
  1604. Bit(s)    Description    (Table P1011)
  1605.  15-7    reserved
  1606.  6    reset SCSI bus at IC initialization (CFRESETB)
  1607.  5    SCSI low byte termination (CFSTERM)
  1608.     =0 disable
  1609.     =1 enable
  1610.  4    SCSI parity (CFSPARITY)
  1611.     =0 disable
  1612.     =1 enable
  1613.  3-2    FIFO threshold (CFFIFO)
  1614.  1-0    selection timeout (CFSELTO)
  1615. SeeAlso: #P0600,#P0980,#P0994,#P1008
  1616.  
  1617. Bitfields for the serial EEPROM bus release time / host adapter ID word:
  1618. Bit(s)    Description    (Table P1012)
  1619.  15-8    bus release time (CFBRTIME)
  1620.  7-4    reserved
  1621.  3-0    host adapter SCSI ID (CFSCSIID)
  1622. SeeAlso: #P0982,#P0989,#P1007
  1623.  
  1624. Bitfields for the serial EEPROM maximum targets word:
  1625. Bit(s)    Description    (Table P1013)
  1626.  15-8    reserved
  1627.  7-0    maximum targets (CFMAXTARG)
  1628. SeeAlso: #P1007
  1629.  
  1630. Bitfields for the PhaseEngine SCSI sequence processor instruction:
  1631. Bit(s)    Description    (Table P1014)
  1632.  31-29    reserved (0)
  1633.  28-25    opcode
  1634.     0000 OR     dest,imm[,src] [RET]
  1635.          MVI dest,imm [RET]
  1636.     0001 AND dest,imm[,src] [RET]
  1637.          MOV dest,src [RET]
  1638.          CLR dest [RET]
  1639.          NOP [RET]
  1640.          RET
  1641.     0010 XOR dest,imm[,src] [RET]
  1642.          NOT dest [RET]
  1643.     0011 ADD dest,imm[,src] [RET]
  1644.          INC dest[,src] [RET]
  1645.          DEC dest[,src] [RET]
  1646.          CLC [dest[,imm]] [RET]
  1647.          STC dest [RET]
  1648.     0100 ADC dest,imm[,src] [RET]
  1649.     0101 SHL/SHR/ROL/ROR dest,[src,]imm [RET]
  1650.     1000 OR     src,imm JMP addr
  1651.          MOV src JMP addr
  1652.          MVI imm JMP addr
  1653.          JMP addr
  1654.     1001 OR     src,imm JC addr
  1655.          MOV src JC addr
  1656.          MVI imm JC addr
  1657.          JC addr
  1658.     1010 OR     src,imm JNC addr
  1659.          MOV src JNC addr
  1660.          MVI imm JNC addr
  1661.          JNC addr
  1662.     1011 OR     src,imm CALL addr
  1663.          MOV src CALL addr
  1664.          MVI imm CALL addr
  1665.          CALL addr
  1666.     1100 CMP  src,imm JNE addr
  1667.     1101 TEST src,imm JNZ addr
  1668.     1110 CMP  src,imm JE  addr
  1669.     1111 TEST src,imm JZ  addr
  1670.     others reserved
  1671.  24-16    (jump instructions) instruction address
  1672.  24    (non-jump instructions) return flag
  1673.  23-16    (non-jump instructions) destination register address
  1674.  15-8    source register address
  1675.  7-0    (shift instructions) shift control (see #P1015)
  1676.     (other instructions) immediate data
  1677.     if 0 accumulator register (ACCUM) is used instead
  1678. Notes:    the jump instructions with the OR/MOV/MVI prefixes implicitly use the
  1679.       source index register (SINDEX) as destination
  1680. SeeAlso: #P0989,#P0990,#P0991,#P0995,#P0996,#P0997,#9042
  1681.  
  1682. Bitfields for the PhaseEngine shift control:
  1683. Bit(s)    Description    (Table P1015)
  1684.  7    clear all bits?
  1685.  6-4    number of bits to shift the AND mask (FFh)
  1686.  3    =0 shift the AND mask left
  1687.     =1 shift the AND mask right
  1688.  2-0    number of bits to rotate the source left
  1689. Notes:    the 8-bit source seems to be rotated left and then AND'ed with the mask
  1690.       (FFh) which is shifted left or right prior to AND'ing in order to
  1691.       perform all kinds of the shift/rotate instructions
  1692.     bit 7 is set (and bits 6-4 equal 7) if the shift count is greater than
  1693.       7 specified for the SHL/SHR instructions
  1694. ----------P1C65------------------------------
  1695. PORT 1C65 - Compaq Contura Aero
  1696. SeeAlso: PORT 2065h
  1697.  
  1698. 1C65  R?  bit 6: operating on battery power
  1699. --------X-P1C801C8F--------------------------
  1700. PORT 1C80-1C8F - VESA XGA Video in EISA slot 1
  1701.  
  1702. 1C80-1C83  RW    EISA Video ID
  1703. 1C84  RW    EISA Video expansion board control (see #P1016)
  1704. 1C85  RW    EISA Setup control
  1705. 1C88  RW    EISA Video Programmable Option Select 0
  1706. 1C89-1C8F  RW    EISA Video Programmable Option Select 1-7
  1707. --------X-P1C801C83--------------------------
  1708. PORT 1C80-1C83 - EISA board product ID (board in slot 1)
  1709.  
  1710. 1C80  R?  bit 7: unused (0)
  1711.       bits 6-2: manufacturer ID, first compressed ASCII char
  1712.       bits 1-0: manufacturer ID, second compressed ASCII char (high)
  1713. 1C81  R?  bits 7-5: manufacturer ID, second compressed ASCII char (low)
  1714.       bits 4-0: manufacturer ID, third compressed ASCII char
  1715. 1C82  R?  bits 7-4: first hex digit of product type
  1716.       bits 3-0: second hex digit of product type
  1717. 1C83  R?  bits 7-4: third hex digit of product type
  1718.       bits 3-0: product revision number (hex digit)
  1719. --------X-P1C84------------------------------
  1720. PORT 1C84 - EISA CONFIGURATION FLAGS (board in slot 1)
  1721.  
  1722. 1C84  RW  configuration flags (see #P1016)
  1723.  
  1724. Bitfields for EISA Add-in Card configuration flags:
  1725. Bit(s)    Description    (Table P1016)
  1726.  0    enable
  1727.  1    IOCHKERR (read-only) card is generating CHCHK#, causing an NMI
  1728.  2    IOCHKRST reset card
  1729.  7-3    card-specific
  1730. --------X-P1C85------------------------------
  1731. PORT 1C85 - EISA SETUP CONTROL (board in slot 1)
  1732. --------V-P1C85------------------------------
  1733. PORT 1C85 - Compaq Qvision EISA - Virtual Controller ID
  1734. --------X-P1C881C8F--------------------------
  1735. PORT 1C88-1C8F - EISA PROGRAMMABLE OPTION SELECT (board in slot 1)
  1736. --------V-P1EE81EEF--------------------------
  1737. PORT 1EE8-1EEF - 8514/A and compatible (e.g. ATI Graphics Ultra) - VSYNC WIDTH
  1738.  
  1739. 1EE8w -W  CRT control: vertical sync width
  1740. --------V-P1EEC------------------------------
  1741. PORT 1EEC - Mach64 - ???
  1742.  
  1743. 1EEC  RW  display power and other controls
  1744.     bits 3-2: DPMS power mode
  1745.         00 normal
  1746.         01 standby
  1747.         10 suspend
  1748.         11 off
  1749. --------X-P200020FF--------------------------
  1750. PORT 2000-20FF - available for EISA slot 2
  1751. ----------P2065------------------------------
  1752. PORT 2065 - Compaq Contura Aero
  1753. SeeAlso: PORT 1C65h"Compaq",PORT 2465h"Compaq"
  1754.  
  1755. 2065  -W  ??? (84h seen)
  1756. --------V-P2100------------------------------
  1757. PORT 2100 - XGA Video Operating Mode Register
  1758. Note:    this port is for the first XGA in the system; 2110-2170 are used for
  1759.       the second through eighth XGAs
  1760. --------V-P2101------------------------------
  1761. PORT 2101 - XGA Video Aperture Control
  1762. Note:    this port is for the first XGA in the system; 2111-2171 are used for
  1763.       the second through eighth XGAs
  1764. --------V-P21022103--------------------------
  1765. PORT 2102-2103 - XGA ???
  1766. Note:    this port is for the first XGA in the system; 211x-217x are used for
  1767.       the second through eighth XGAs
  1768. --------V-P2104------------------------------
  1769. PORT 2104 - XGA Video Interrupt Enable
  1770. Note:    this port is for the first XGA in the system; 211x-217x are used for
  1771.       the second through eighth XGAs
  1772. --------V-P2105------------------------------
  1773. PORT 2105 - XGA Video Interrupt Status
  1774. Note:    this port is for the first XGA in the system; 211x-217x are used for
  1775.       the second through eighth XGAs
  1776. --------V-P2106------------------------------
  1777. PORT 2106 - XGA Video Virtual Memory Control
  1778. Note:    this port is for the first XGA in the system; 211x-217x are used for
  1779.       the second through eighth XGAs
  1780. --------V-P2107------------------------------
  1781. PORT 2107 - XGA Video Virtual Memory Interrupt Status
  1782. Note:    this port is for the first XGA in the system; 211x-217x are used for
  1783.       the second through eighth XGAs
  1784. --------V-P2108------------------------------
  1785. PORT 2108 - XGA Video Aperture Index
  1786. Note:    this port is for the first XGA in the system; 211x-217x are used for
  1787.       the second through eighth XGAs
  1788. --------V-P2109------------------------------
  1789. PORT 2109 - XGA Video Memory Access Mode
  1790. Note:    this port is for the first XGA in the system; 211x-217x are used for
  1791.       the second through eighth XGAs
  1792. --------V-P210A------------------------------
  1793. PORT 210A - XGA Video Index for Data
  1794. Note:    this port is for the first XGA in the system; 211x-217x are used for
  1795.       the second through eighth XGAs
  1796. --------V-P210B------------------------------
  1797. PORT 210B - XGA Video Data (byte)
  1798. Note:    this port is for the first XGA in the system; 211x-217x are used for
  1799.       the second through eighth XGAs
  1800. --------V-P210C210F--------------------------
  1801. PORT 210C-210F - XGA Video Data (word/dword)
  1802. Note:    this port is for the first XGA in the system; 211x-217x are used for
  1803.       the second through eighth XGAs
  1804.  
  1805. 210C  RW  byte data
  1806. 210Cw RW  word data
  1807. 210Cd RW  dword data
  1808. --------V-P2110211F--------------------------
  1809. PORT 2110-211F - IBM XGA (eXtended Graphics Adapter  8514/A) (second installed)
  1810. Notes:    see individual 210x entries above
  1811.     c't says default instance number is 6, i.e. addresses 216x
  1812. --------V-P2120212F--------------------------
  1813. PORT 2120-212F - IBM XGA (eXtended Graphics Adapter  8514/A) (third installed)
  1814. Notes:    see individual 210x entries above
  1815.     c't says default instance number is 6, i.e. addresses 216x
  1816. --------V-P2130213F--------------------------
  1817. PORT 2130-213F - IBM XGA (eXtended Graphics Adapter  8514/A) (fourth installed)
  1818. Notes:    see individual 210x entries above
  1819.     c't says default instance number is 6, i.e. addresses 216x
  1820. --------V-P2140214F--------------------------
  1821. PORT 2140-214F - IBM XGA (eXtended Graphics Adapter  8514/A) (fifth installed)
  1822. Notes:    see individual 210x entries above
  1823.     c't says default instance number is 6, i.e. addresses 216x
  1824. --------V-P2150215F--------------------------
  1825. PORT 2150-215F - IBM XGA (eXtended Graphics Adapter  8514/A) (sixth installed)
  1826. Notes:    see individual 210x entries above
  1827.     c't says default instance number is 6, i.e. addresses 216x
  1828. --------V-P2160216F--------------------------
  1829. PORT 2160-216F - IBM XGA (eXtended Graphics Adapter 8514/A) (seventh installed)
  1830. Notes:    see individual 210x entries above
  1831.     c't says default instance number is 6, i.e. addresses 216x
  1832. --------V-P2170217F--------------------------
  1833. PORT 2170-217F - IBM XGA (eXtended Graphics Adapter 8514/A) (eighth installed)
  1834. Notes:    see individual 210x entries above
  1835.     c't says default instance number is 6, i.e. addresses 216x
  1836. --------V-P217A217B--------------------------
  1837. PORT 217A-217B - ET4000/W32 CRTC-B/Sprite
  1838. Note:    Alternative addresses may depend on adapter manufacturer,
  1839.       Tseng claims 21xA with x=three address bits, selected by IOD2..0
  1840.       during power up reset.
  1841.  
  1842. 21xA  RW  ET4000/W32(i) CRTC-B/Sprite index register
  1843.     bit7-0: index
  1844. 21xB  RW  ET4000/W32(i) CRTC-B/Sprite data register (see #P1017)
  1845.  
  1846. (Table P1017)
  1847. Values for ET4000/W32(i) CRTC-B/Sprite data register index:
  1848.  E0h    CRTC-B / Sprite Horizontal Pixel Position, Low
  1849.        bit7-0: horizontal pixel position bit7-0
  1850.  E1h    CRTC-B / Sprite Horizontal Pixel Position, High
  1851.        bit7-4: reserved
  1852.        bit3-0: horizontal pixel position bit11-8
  1853.  E2h    CRTC-B Width Low / Sprite Horizontal Preset
  1854.        bit7-0: width of CRTC-B bit7-0
  1855.        bit5-0: horizontal preset for sprite
  1856.  E3h    CRTC-B Width High / Sprite Horizontal Preset
  1857.        bit7-4: reserved
  1858.        bit3-0: width of CRTC-B bit11-8
  1859.  E4h    CRTC-B / Sprite Vertical Pixel Position, Low
  1860.        bit7-0: vertical pixel position bit7-0
  1861.  E5h    CRTC-B / Sprite Vertical Pixel Position, High
  1862.        bit7-4: reserved
  1863.        bit3-0: vertical pixel position bit11-8
  1864.  E6h    CRTC-B Height Low / Sprite Vertical Preset
  1865.        bit7-0: height of CRTC-B bit7-0
  1866.        bit5-0: vertical preset for sprite
  1867.  E7h    CRTC-B Height High / Sprite Vertical Preset
  1868.        bit7-4: reserved
  1869.        bit3-0: height of CRTC-B bit11-8
  1870.  E8h    CRTC-B / Sprite Starting Address Low
  1871.        pointer to CRTC-B / sprite image in display memory.
  1872.        (maximum size of sprites 64x64x4=1KB with 4 colors:
  1873.         00b=color-0, 01b=color-255, 10b=transparent, 11b=reserved)
  1874.        bit7-0: startaddress bit7-0
  1875.  E9h    CRTC-B / Sprite Starting Address Middle
  1876.        bit7-0: startaddress bit15-8
  1877.  EAh    CRTC-B / Sprite Starting Address High
  1878.        bit7-4: reserved
  1879.        bit3-0: startaddress bit19-16
  1880.  EBh    CRTC-B / Sprite Row Offset Low
  1881.        bit7-0: offset bit7-0
  1882.  ECh    CRTC-B / Sprite Row Offset High
  1883.        bit7-4: revision ID (any ET4000/W32)
  1884.             0000b=W32         0100b-1111b reserved
  1885.             0001b=W32i
  1886.             0010b=W32p
  1887.             0011b=W32i, new
  1888.        bit3-0: offset bit11-8
  1889.  EDh    CRTC-B Pixel Panning
  1890.        bit7-3: reserved
  1891.        bit2-0: CRTC-B pixel panning
  1892.  EEh    CRTC-B Color-Depth-Register / Hardware-Zoom
  1893.        bit7-4: reserved (concerning databook ET4000/W32)
  1894.        bit7-6: vertical zoom (undocumented)
  1895.            (original ET4000/W32 ok, doesn't work properly
  1896.             with some ET4000/W32i)
  1897.             00b=zoomx1       10b=zoomx3
  1898.             01b=zoomx2       11b=zoomx4
  1899.        bit5-4: horizontal zoom (undocumented)
  1900.            (original ET4000/W32 ok, doesn't work properly
  1901.             with some ET4000/W32i)
  1902.             00b=zoomx1       10b=zoomx3
  1903.             01b=zoomx2       11b=zoomx4
  1904.        bit3-0: bit/pixel
  1905.             0000b=1       0011b=8
  1906.             0001b=2       0100b=16
  1907.             0010b=4
  1908.  EFh    CRTC-B / Sprite Control
  1909.        bit7-2: reserved
  1910.        bit1     : 1=2nd CRTC-B image overlays main CRTC-A image
  1911.            0=CRTC-B image at pin SP1/0
  1912.        bit0     : 1=enable CRTC-B
  1913.            0=enable sprite (see F7h)
  1914.  F7h    Image Port Control
  1915.        bit7     : 1=CRTC-B or sprite active
  1916.            0=CRTC-B and sprite not active
  1917.        bit6-0: reserved
  1918. ----------P22E822EF--------------------------
  1919. PORT 22E8-22EF - 8514/A and compatible (e.g. ATI Graphics Ultra) - DISPLAY CTRL
  1920.  
  1921. 22E8w -W  CRT control: display control
  1922. ----------P23902393--------------------------
  1923. PORT 2390-2393 - cluster (adapter 4)
  1924. --------V-P23C023CF--------------------------
  1925. PORT 23C0-23CF - Compaq QVision - BitBLT engine
  1926. --------X-P240024FF--------------------------
  1927. PORT 2400-24FF - available for EISA slot 2
  1928. ----------P2465------------------------------
  1929. PORT 2465 - Compaq Contura Aero
  1930. SeeAlso: PORT 1C65h"Compaq",PORT 2065h"Compaq"
  1931.  
  1932. 2465  R-  current battery power level
  1933.         (166 fully-charged, 130 = LowBat1)
  1934. ----------P27C6------------------------------
  1935. PORT 27C6 - Compaq LTE Lite - LCD TIMEOUT
  1936.  
  1937. 27C6  RW  LCD timeout in minutes
  1938. --------X-P280028FF--------------------------
  1939. PORT 2800-28FF - available for EISA slot 2
  1940. --------V-P28E9------------------------------
  1941. PORT 28E9 - 8514/A - WD Escape Functions
  1942. --------d-P2C002CBF--------------------------
  1943. PORT 2C00-2CBF -  Adaptec AIC-777x EISA SCSI controller in EISA slot 2
  1944. SeeAlso: PORT 0340h-035Fh"Adaptec AHA-154x",PORT xxxxh"Adaptec AIC-78xx"
  1945. --------V-P2C802C8F--------------------------
  1946. PORT 2C80-2C8F - VESA XGA Video in EISA slot 2
  1947. SeeAlso: PORT 1C80h-1C83h,PORT 1C88h-1C8Fh
  1948. --------X-P2C802C83--------------------------
  1949. PORT 2C80-2C83 - EISA board product ID (board in slot 2)
  1950. SeeAlso: PORT 1C80h-1C83h
  1951. --------X-P2C84------------------------------
  1952. PORT 2C84 - EISA CONFIGURATION FLAGS (board in slot 2)
  1953.  
  1954. 2C84  RW  configuration flags (see #P1016)
  1955. --------X-P300030FF--------------------------
  1956. PORT 3000-30FF - available for EISA slot 3
  1957. --------S-P32203227--------------------------
  1958. PORT 3220-3227 - serial port 3, description same as 03F8
  1959. --------S-P3228322F--------------------------
  1960. PORT 3228-322F - serial port 4, description same as 03F8
  1961. --------V-P33C033CF--------------------------
  1962. PORT 33C0-33CF - Compaq QVision - BitBLT engine
  1963. --------X-P340034FF--------------------------
  1964. PORT 3400-34FF - available for EISA slot 3
  1965. --------d-P35103513--------------------------
  1966. PORT 3510-3513 - ESDI primary harddisk controller
  1967. Range:    PORT 3510h-3513h (primary) or PORT 3518h-351Bh (secondary)
  1968. SeeAlso: PORT 3518h,PORT 01F0h-01F7h
  1969.  
  1970. 3510w R-  status word
  1971. 3510w -W  command word
  1972. 3512  R-  basic status
  1973. 3512  -W  basic control
  1974. 3513  R-  interrupt status
  1975. 3513  -W  attention
  1976. --------d-P3518351B--------------------------
  1977. PORT 3518-351B - ESDI secondary harddisk controller
  1978. Range:    PORT 3510h-3513h (primary) or PORT 3518h-351Bh (secondary)
  1979. SeeAlso: PORT 3510h,PORT 01F0h-01F7h
  1980.  
  1981. 3518w R-  status word
  1982. 3518w -W  command word
  1983. 351A  R-  basis status
  1984. 351A  -W  basic control
  1985. 351B  R-  interrupt status
  1986. 351B  -W  attention
  1987. --------d-P3540354F--------------------------
  1988. PORT 3540-354F - IBM SCSI (Small Computer System Interface) adapter
  1989. --------d-P3550355F--------------------------
  1990. PORT 3550-355F - IBM SCSI (Small Computer System Interface) adapter
  1991. --------d-P3560356F--------------------------
  1992. PORT 3560-356F - IBM SCSI (Small Computer System Interface) adapter
  1993. --------d-P3570357F--------------------------
  1994. PORT 3570-357F - IBM SCSI (Small Computer System Interface) adapter
  1995. --------V-P36EE------------------------------
  1996. PORT 36EE - ATI Mach8/Mach32 - FIFO OPTION
  1997. SeeAlso: PORT 6AEEh,PORT 6EEEh,PORT 72EEh,PORT 76EEh,PORT 7AEEh,PORT 8EEEh
  1998.  
  1999. 36EE  -W  FIFO option
  2000.         bit 0: generate wait states if FIFO >= half full
  2001.             (0=only when FIFO full)
  2002.         bit 1: force 8-bit host data I/O
  2003. --------X-P380038FF--------------------------
  2004. PORT 3800-38FF - available for EISA slot 3
  2005. --------X-P3C003CFF--------------------------
  2006. PORT 3C00-3CFF - available for EISA slot 3
  2007. --------d-P3C003CBF--------------------------
  2008. PORT 3C00-3CBF -  Adaptec AIC-777x EISA SCSI controller in EISA slot 3
  2009. SeeAlso: PORT 0340h-035Fh"Adaptec AHA-154x",PORT xxxxh"Adaptec AIC-78xx"
  2010. --------V-P3C803C8F--------------------------
  2011. PORT 3C80-3C8F - VESA XGA Video in EISA slot 3
  2012.  
  2013. 3C80-3C83  RW    EISA Video ID
  2014. 3C84  RW    EISA Video expansion board control
  2015. 3C85  RW    EISA Setup control
  2016. 3C88  RW    EISA Video Programmable Option Select 0
  2017. 3C89-3C8F  RW    EISA Video Programmable Option Select 1-7
  2018.  
  2019. SeeAlso: PORT 1C80h-1C8Fh"XGA",PORT 2C80h-2C8Fh"XGA",PORT 7C80h-7C8Fh"XGA"
  2020. --------X-P3C803C83--------------------------
  2021. PORT 3C80-3C83 - EISA board product ID (board in slot 3)
  2022. SeeAlso: PORT 1C80h-1C83h
  2023. --------X-P3C84------------------------------
  2024. PORT 3C84 - EISA CONFIGURATION FLAGS (board in slot 3)
  2025.  
  2026. 3C84  RW  configuration flags (see #P1016)
  2027. --------X-P400040FF--------------------------
  2028. PORT 4000-40FF - available for EISA slot 4
  2029. ----------P42204227--------------------------
  2030. PORT 4220-4227 - serial port, description same as 03F8
  2031. ----------P4228422F--------------------------
  2032. PORT 4228-422F - serial port, description same as 03F8
  2033. ----------P42E042EF--------------------------
  2034. PORT 42E0-42EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2035.  
  2036. 42E1  RW  GPIB (adapter 2)
  2037. --------V-P42E8------------------------------
  2038. PORT 42E8 - 8514/A and hardware-compatible video cards
  2039. Note:    supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2040.  
  2041. 42E8w R-  Misc. control: Subsystem Status (see #P1018)
  2042. 42E8w -W  Misc. control: Subsystem Control (see #P1019)
  2043.  
  2044. Bitfields for 8514/A Subsystem Status register:
  2045. Bit(s)    Description    (Table P1018)
  2046.  15-8    (8514/A) reserved
  2047.  13    (S3) ???
  2048.  12-8    (S3) ???
  2049.  7    pixel length (0 = four bits, 1 = eight bits)
  2050.  6-4    reserved
  2051.  3    FIFO empty (interrupt generated if enabled)
  2052.  2    FIFO overflow (interrupt generated if enabled)
  2053.  1    Graphics Engine busy (interrupt generated if enabled)
  2054.  0    vertical sync (interrupt generated if enabled)
  2055. SeeAlso: #P1019
  2056.  
  2057. Bitfields for 8514/A Subsystem Control Register:
  2058. Bit(s)    Description    (Table P1019)
  2059.  15-14    GP_RESET
  2060.       W    00 no change
  2061.     01 normal operation
  2062.     10 reset graphics processor and FIFO
  2063.     11 reserved
  2064.  13-12    reserved
  2065.  11   W    enable interrupt when graphics processor idle
  2066.  10   W    enable interrupt on invalid I/O (FIFO overlow)
  2067.  9    W    enable interrupt if inside scissors region
  2068.  8    W    enable vertical blanking interval interrupt
  2069.  6-4 R    monitor ID (8514/A)
  2070.  7-4    reserved (S3)
  2071.  3    acknowledge idle interrupt (and clear)
  2072.  2    acknowledge invalid I/O interrupt (and clear)
  2073.  1    acknowledge inside-scissors interrupt (and clear)
  2074.  0    acknowledge vertical blanking interrupt (and clear)
  2075. SeeAlso: #P1018
  2076. --------V-P42EC------------------------------
  2077. PORT 42EC - ATI Mach64 - ???
  2078. SeeAlso: PORT 42EDh"Mach64"
  2079.  
  2080. 42EC  RW  ???
  2081.     bits 1-0: ???
  2082. --------V-P42ED------------------------------
  2083. PORT 42ED - ATI Mach64 - ???
  2084. SeeAlso: PORT 42ECh"Mach64",PORT 42EFh
  2085.  
  2086. 42ED  R?  ???
  2087. --------V-P42EE42EF--------------------------
  2088. PORT 42EE-42EF - ATI Mach32 - MEMORY BOUNDARY REGISTER
  2089. SeeAlso: PORT 5EEEh"Mach32"
  2090.  
  2091. 42EEw RW  memory boundary
  2092.     bits 3-0: VGA/8514 boundary in 256K units (VGA only below, 8514 above)
  2093.     bit 4: partition enable: VGA and 8514 drawing engines may only write
  2094.           within their respective partitions
  2095.     bits 15-5: reserved
  2096. --------V-P42EF------------------------------
  2097. PORT 42EF - ATI Mach64 - ???
  2098. SeeAlso: PORT 42EDh"Mach64"
  2099.  
  2100. 42EF  R?  ???
  2101. --------X-P440044FF--------------------------
  2102. PORT 4400-44FF - available for EISA slot 4
  2103. ----------P4F15------------------------------
  2104. PORT 4F15 - Tseng Labs ET6000 - Read EDID through Display Data Channel
  2105. --------V-P46E8------------------------------
  2106. PORT 46E8 - VGA - VIDEO ADAPTER ENABLE
  2107. Note:    IBM uses this port for adapter-card VGAs only, and PORT 03C3h for
  2108.       motherboard VGA only (see 03C3 for details)
  2109. SeeAlso: PORT 03C3h,PORT 46E8h"8514/A",#P0748
  2110.  
  2111. 46E8  rW  Misc. control: enable flags / select ROM page (8514/A) (see #P1020)
  2112.  
  2113. Bitfields for VGA miscellaneous control register:
  2114. Bit(s)    Description    (Table P1020)
  2115.  7-5    unused or vendor-specific
  2116.  4    setup for POS registers (MCA)
  2117.  3    enable video I/O ports and video buffer
  2118.  2-0    unused or vendor-specific
  2119. --------V-P46E8------------------------------
  2120. PORT 46E8 - 8514/A and compatible (e.g. ATI Graphics Ultra) - ROM PAGE SELECT
  2121. Note:    this register is readable on the C&T 82c480 chipset
  2122. SeeAlso: PORT 46E8h"VGA"
  2123.  
  2124. 46E8w -W  ROM page select (see #P1021)
  2125.  
  2126. Bitfields for 8514/A ROM page select register:
  2127. Bit(s)    Description    (Table P1021)
  2128.  2-0    select which 4K page of 32K ROM to map at segment C700h
  2129.  3    enable VGA
  2130.  4    select VGA setup mode
  2131.  15-5    reserved (0)
  2132. --------V-P46EE------------------------------
  2133. PORT 46EE - ATI Mach32 - ???
  2134.  
  2135. 46EEw RW  ???
  2136. --------V-P46EF------------------------------
  2137. PORT 46EF - ATI Mach64 - ???
  2138. Note:    the Mach64 BIOS reads the value of this port and multiplies it by 100
  2139. SeeAlso: PORT 66ECh"Mach64"
  2140. --------X-P480048FF--------------------------
  2141. PORT 4800-48FF - available for EISA slot 4
  2142. --------V-P4AE84AE9--------------------------
  2143. PORT 4AE8-4AE9 - 8514/A and compatible - CRT CONTROL
  2144. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2145.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2146. SeeAlso: #P0749
  2147.  
  2148. 4AE8w -W  CRT control: Advanced function control (see also #P1022)
  2149.     (02h = VGA mode, 03h = 480-line mode, 07h = 768-line mode)
  2150.  
  2151. Bitfields for S3 8514/A-compatible Advanced Function Control register:
  2152. Bit(s)    Description    (Table P1022)
  2153.  15-7    reserved
  2154.  6    (928 only) enable Write Posting
  2155.  5    (928+) enable memory-mapped I/O
  2156.  4    (928+) enable linear addressing (see also #P0741)
  2157.  3    reserved
  2158.  2    (911-928) screen size (1 = 800x600 or 1024x768, 0=640x480)
  2159.     (Trio32/Trio64) enhanced modes pixel length (0 = 8+ bpp, 1 = 4 bpp)
  2160.  1    reserved (1)
  2161.  0    enable enhanced functions
  2162. Note:    bit 4 is ORed with CR58 bit 4; bit 5 is ORed with CR53 bit 4
  2163. --------V-P4AEE------------------------------
  2164. PORT 4AEE - ATI Mach32 - ???
  2165.  
  2166. 4AEEw RW  ???
  2167. --------X-P4C004CFF--------------------------
  2168. PORT 4C00-4CFF - available for EISA slot 4
  2169. --------d-P4C004CBF--------------------------
  2170. PORT 4C00-4CBF -  Adaptec AIC-777x EISA SCSI controller in EISA slot 4
  2171. SeeAlso: PORT 0340h-035Fh"Adaptec AHA-154x",PORT xxxxh"Adaptec AIC-78xx"
  2172. --------X-P4C804C83--------------------------
  2173. PORT 4C80-4C83    EISA board product ID (board in slot 4)
  2174. SeeAlso: PORT 1C80h-1C83h
  2175. --------V-P4C804C8F--------------------------
  2176. PORT 4C80-4C8F - VESA XGA Video in EISA slot 4 (see 3C80-3C8F)
  2177. SeeAlso: PORT 1C80h-1C8Fh,PORT 6C80h-6C8Fh
  2178. --------X-P4C84------------------------------
  2179. PORT 4C84 - EISA CONFIGURATION FLAGS (board in slot 4)
  2180.  
  2181. 4C84  RW  configuration flags (see #P1016)
  2182. --------X-P500050FF--------------------------
  2183. PORT 5000-50FF - available for EISA slot 5
  2184. --------S-P52205227--------------------------
  2185. PORT 5220-5227 - serial port, description same as 03F8
  2186. --------S-P5228522F--------------------------
  2187. PORT 5228-522F - serial port, description same as 03F8
  2188. --------V-P52E852E9--------------------------
  2189. PORT 52E8-52E9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 0
  2190. Note:    the 82c480 is an 8514/A-compatible video chipset
  2191. SeeAlso: PORT 56E8h"C&T",PORT 5AE8h"C&T",PORT 5EE8h"C&T"
  2192.  
  2193. 52E8w RW  Extended Configuration Register 0
  2194. --------V-P52EE52EF--------------------------
  2195. PORT 52EE-52EF - ATI Mach32 - SCRATCH REGISTER 0 (USED FOR ROM LOCATION)
  2196. Note:    ATI video BIOS sets this port according to the segment address of the
  2197.       BIOS if >= C000h, as ((seg-C000h) shr 7)
  2198. SeeAlso: PORT 56EEh"Mach32"
  2199.  
  2200. 52EEw RW  scratch register 0: Video ROM address
  2201. --------X-P540054FF--------------------------
  2202. PORT 5400-54FF - available for EISA slot 5
  2203. --------V-P56E856E9--------------------------
  2204. PORT 56E8-56E9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 1
  2205. Note:    the 82c480 is an 8514/A-compatible video chipset
  2206. SeeAlso: PORT 52E8h"C&T",PORT 5AE8h"C&T",PORT 5EE8h"C&T"
  2207.  
  2208. 56E8w RW  Extended Configuration Register 1
  2209. --------V-P56EE56EF--------------------------
  2210. PORT 56EE-56EF - ATI Mach32 - SCRATCH REGISTER 1
  2211. SeeAlso: PORT 52EEh"Mach32"
  2212.  
  2213. 56EEw RW  scratchpad
  2214. --------X-P580058FF--------------------------
  2215. PORT 5800-58FF - available for EISA slot 5
  2216. --------V-P5AE85AE9--------------------------
  2217. PORT 5AE8-5AE9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 2
  2218. Note:    the 82c480 is an 8514/A-compatible video chipset
  2219. SeeAlso: PORT 52E8h"C&T",PORT 56E8h"C&T",PORT 5EE8h"C&T"
  2220.  
  2221. 5AE8w RW  Extended Configuration Register 2
  2222. --------V-P5AEE------------------------------
  2223. PORT 5AEE - ATI Mach32 - ???
  2224.  
  2225. 5AEE  RW  ???
  2226. --------X-P5C005CFF--------------------------
  2227. PORT 5C00-5CFF - available for EISA slot 5
  2228. --------d-P5C005CBF--------------------------
  2229. PORT 5C00-5CBF -  Adaptec AIC-777x EISA SCSI controller in EISA slot 5
  2230. SeeAlso: PORT 0340h-035Fh"Adaptec AHA-154x",PORT xxxxh"Adaptec AIC-78xx"
  2231. --------V-P5C805C8F--------------------------
  2232. PORT 5C80-5C8F - VESA XGA Video in EISA slot 5
  2233. SeeAlso: PORT 2C80h-2C8Fh,PORT 4C80h-4C8Fh,PORT 6C80h-6C8Fh
  2234.  
  2235. 5C80d RW  EISA Video ID
  2236. 5C84  RW  EISA Video expansion board control
  2237. 5C85  RW  EISA Setup control
  2238. 5C88  RW  EISA Video Programmable Option Select 0
  2239. 5C89  RW  EISA Video Programmable Option Select 1
  2240. 5C8A  RW  EISA Video Programmable Option Select 2
  2241. 5C8B  RW  EISA Video Programmable Option Select 3
  2242. 5C8C  RW  EISA Video Programmable Option Select 4
  2243. 5C8D  RW  EISA Video Programmable Option Select 5
  2244. 5C8E  RW  EISA Video Programmable Option Select 6
  2245. 5C8F  RW  EISA Video Programmable Option Select 7
  2246. --------X-P5C805C83--------------------------
  2247. PORT 5C80-5C83    EISA board product ID (board in slot 5)
  2248. SeeAlso: PORT 1C80h-1C83h
  2249. --------X-P5C84------------------------------
  2250. PORT 5C84 - EISA CONFIGURATION FLAGS (board in slot 5)
  2251.  
  2252. 5C84  RW  configuration flags (see #P1016)
  2253. --------V-P5EE85EE9--------------------------
  2254. PORT 5EE8-5EE9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 3
  2255. Note:    the 82c480 is an 8514/A-compatible video chipset
  2256. SeeAlso: PORT 52E8h"C&T",PORT 56E8h"C&T",PORT 5AE8h"C&T"
  2257.  
  2258. 5EE8w RW  Extended Configuration Register 3
  2259. ----------P5EEE------------------------------
  2260. PORT 5EEE - ATI Mach32 - MEMORY APERTURE CONFIGURATION REGISTER
  2261. SeeAlso: PORT 42EEh"Mach32"
  2262.  
  2263. 5EEEw RW  Memory Aperture Configuration (see #P1023)
  2264.  
  2265. Bitfields for ATI Mach32 Memory Aperture Configuration Register:
  2266. Bit(s)    Description    (Table P1023)
  2267.  1-0    direct memory interface mapping
  2268.     00 disabled
  2269.     01 1M aperture (not on PCI)
  2270.     10 4M aperture
  2271.     11 reserved
  2272.  3-2    1M page select (not on PCI)
  2273.     00 page 0
  2274.     01 page 1
  2275.     10 page 2
  2276.     11 page 3
  2277.  11-8    (ISA) memory aperture location, 0-15 MB
  2278.  13-8    (EISA) memory aperture location, 0-63 MB
  2279.  14-8    (VLB) memory aperture location, 0-127 MB [*]
  2280.  15-4    (PCI) memory aperture location, 0-4095 MB
  2281.  13-8    (MCA 16-bit) memory aperture location, 0-63 MB
  2282.  14-8    (MCA 32-bit) memory aperture location, 0-127 MB
  2283. Note:    [*] if PORT 16EEh bit 3 is set and PORT FAEEh is non-zero, bits 15-4
  2284.       are used to specify an address from 0-4095 MB
  2285. --------X-P600060FF--------------------------
  2286. PORT 6000-60FF - available for EISA slot 6
  2287. ----------P62E062EF--------------------------
  2288. PORT 62E0-62EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2289.  
  2290. 62E1  RW  GPIB (adapter 3)
  2291. --------V-P63C063CF--------------------------
  2292. PORT 63C0-63CF - Compaq QVision - BitBLT engine
  2293. --------X-P640064FF--------------------------
  2294. PORT 6400-64FF - available for EISA slot 6
  2295. --------V-P66EC------------------------------
  2296. PORT 66EC - ATI Mach64 - ???
  2297. SeeAlso: PORT 6AECh"Mach64"
  2298. --------X-P680068FF--------------------------
  2299. PORT 6800-68FF - available for EISA slot 6
  2300. --------V-P6AEC6AED--------------------------
  2301. PORT 6AEC-6AED - ATI Mach64 - ???
  2302. SeeAlso: PORT 66ECh"Mach64"
  2303. --------V-P6AEE------------------------------
  2304. PORT 6AEE - ATI Mach8/Mach32 - MAXIMUM WAIT STATES
  2305. SeeAlso: PORT 36EEh,PORT 6EEEh,PORT 76EEh,PORT 7AEEh,PORT 8EEEh
  2306.  
  2307. 6AEE  RW  maximum wait states (see #P1024)
  2308.  
  2309. Bitfields for ATI Mach8/Mach32 wait state configuration:
  2310. Bit(s)    Description    (Table P1024)
  2311.  10    leave alone ("PASSTHROUGH_OVERRIDE")
  2312.  9    enable for 16-bit I/O
  2313.  8    0=horizontal degree-mode line draws
  2314. --------X-P6C006CFF--------------------------
  2315. PORT 6C00-6CFF - available for EISA slot 6
  2316. --------d-P6C006CBF--------------------------
  2317. PORT 6C00-6CBF -  Adaptec AIC-777x EISA SCSI controller in EISA slot 6
  2318. SeeAlso: PORT 0340h-035Fh"Adaptec AHA-154x",PORT xxxxh"Adaptec AIC-78xx"
  2319. --------X-P6C806C83--------------------------
  2320. PORT 6C80-6C83 - EISA board product ID (board in slot 6)
  2321. SeeAlso: PORT 1C80h-1C83h
  2322. --------V-P6C806C8F--------------------------
  2323. PORT 6C80-6C8F - VESA XGA Video in EISA slot 1
  2324. SeeAlso: PORT 1C80h-1C8Fh"XGA",PORT 2C80h-2C8Fh"XGA",PORT 5C80h-5C8Fh"XGA"
  2325.  
  2326. 6C80d RW  EISA Video ID (see PORT 1C80h-1C83h)
  2327. 6C84  RW  EISA Video expansion board control
  2328. 6C85  RW  EISA Setup control
  2329. 6C88  RW  EISA Video Programmable Option Select 0
  2330. 6C89  RW  EISA Video Programmable Option Select 1
  2331. 6C8A  RW  EISA Video Programmable Option Select 2
  2332. 6C8B  RW  EISA Video Programmable Option Select 3
  2333. 6C8C  RW  EISA Video Programmable Option Select 4
  2334. 6C8D  RW  EISA Video Programmable Option Select 5
  2335. 6C8E  RW  EISA Video Programmable Option Select 6
  2336. 6C8F  RW  EISA Video Programmable Option Select 7
  2337. --------X-P6C84------------------------------
  2338. PORT 6C84 - EISA CONFIGURATION FLAGS (board in slot 6)
  2339.  
  2340. 6C84  RW  configuration flags (see #P1016)
  2341. --------V-P6EEC------------------------------
  2342. PORT 6EEC - ATI Mach64 - ???
  2343. SeeAlso: PORT 6AECh"Mach64"
  2344. --------V-P6EEE------------------------------
  2345. PORT 6EEE - ATI Mach8/Mach32 - ENGINE VIDEO BUFFER OFFSET LOW
  2346. SeeAlso: PORT 72EEh
  2347.  
  2348. 6AEEw -W  low 16 bits of video buffer starting offset
  2349. --------X-P700070FF--------------------------
  2350. PORT 7000-70FF - available for EISA slot 7
  2351. --------V-P72EC------------------------------
  2352. PORT 72EC - ATI Mach64 - ???
  2353. SeeAlso: PORT 66ECh"Mach64",PORT 72EFh"Mach64"
  2354. --------V-P72EE------------------------------
  2355. PORT 72EE - ATI Mach8/Mach32 - ENGINE VIDEO BUFFER OFFSET HIGH
  2356. SeeAlso: PORT 6EEEh
  2357.  
  2358. 72EE  -W  high bits of video buffer starting offset
  2359.         bits 1-0 for Mach-8
  2360.         bits 3-0 for Mach-32
  2361. --------V-P72EE------------------------------
  2362. PORT 72EE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (LEFT)
  2363. SeeAlso: PORT 76EEh"BOUNDS",PORT 7AEEh"BOUNDS",PORT 7EEEh"BOUNDS"
  2364.  
  2365. 72EEw R-  left edge of bounding box for points written via Line Draw register
  2366. --------V-P72EF------------------------------
  2367. PORT 72EF - ATI Mach64 - ???
  2368. SeeAlso: PORT 66ECh"Mach64",PORT 72ECh"Mach64"
  2369. --------X-P740074FF--------------------------
  2370. PORT 7400-74FF - available for EISA slot 7
  2371. --------V-P76EE------------------------------
  2372. PORT 76EE - ATI Mach8/Mach32 - ENGINE DISPLAY PITCH
  2373. SeeAlso: PORT 6AEEh,PORT 7AEEh
  2374.  
  2375. 76EE  -W  display pitch
  2376. --------V-P76EE------------------------------
  2377. PORT 76EE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (TOP)
  2378. SeeAlso: PORT 72EEh"BOUNDS",PORT 7AEEh"BOUNDS",PORT 7EEEh"BOUNDS"
  2379.  
  2380. 76EEw R-  top edge of bounding box for points written via Line Draw register
  2381. --------X-P780078FF--------------------------
  2382. PORT 7800-78FF - available for EISA slot 7
  2383. --------V-P7AEE------------------------------
  2384. PORT 7AEE - ATI Mach8/Mach32 - EXTENDED GRAPHICS ENGINE CONGIFURATION
  2385. SeeAlso: PORT 8EEEh
  2386.  
  2387. 7AEEw -W  extended graphics engine configuration (see #P1025)
  2388.  
  2389. Bitfields for Mach8/Mach32 extended graphics engine configuration:
  2390. Bit(s)    Description    (Table P1025)
  2391.  15    drawing pixel size to be written next (68800-6 only)
  2392.  14    enable 8-bit DAC (Mach-32 only)
  2393.  13-12    DAC address inputs RS(3:2) control (Mach-32 only)
  2394.  11    display pixel size to be written next (68800-6 only)
  2395.  10    24-bit color order (Mach-32 only)
  2396.     0 = RGB
  2397.     1 = BGR
  2398.  9    24-bit color configuration: pixels use 4 bytes instead of three
  2399.  8    DAC processes four pixels in parallel (Mach-32 only)
  2400.  7-6    16-bits-per-color word format (Mach-32 only)
  2401.     00 RGB(5,5,5)
  2402.     01 RGB(5,6,5)
  2403.     10 RGB(6,5,5)
  2404.     11 RGB(6,6,4)
  2405.  5-4    number of bits per pixel (Mach-32 only)
  2406.     00 four
  2407.     01 eight
  2408.     10 sixteen
  2409.     11 twenty-four
  2410.  3    report monitor alias instead of actual monitor
  2411.  2-0    alternate monitor ID (alias)
  2412. --------V-P7AEE------------------------------
  2413. PORT 7AEE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (RIGHT)
  2414. SeeAlso: PORT 72EEh"BOUNDS",PORT 76EEh"BOUNDS",PORT 7EEEh"BOUNDS"
  2415.  
  2416. 7AEEw R-  right edge of bounding box for points written via Line Draw register
  2417. --------X-P7C007CFF--------------------------
  2418. PORT 7C00-7CFF - available for EISA slot 7
  2419. --------d-P7C007CBF--------------------------
  2420. PORT 7C00-7CBF -  Adaptec AIC-777x EISA SCSI controller in EISA slot 7
  2421. SeeAlso: PORT 0340h-035Fh"Adaptec AHA-154x",PORT xxxxh"Adaptec AIC-78xx"
  2422. --------X-P7C807C83--------------------------
  2423. PORT 7C80-7C83 - EISA board product ID (board in slot 7)
  2424. SeeAlso: PORT 1C80h-1C83h
  2425. --------V-P7C807C8F--------------------------
  2426. PORT 7C80-7C8F - VESA XGA Video in EISA slot 7
  2427. SeeAlso: PORT 1C80h-1C8Fh,PORT 6C80h-6C8Fh
  2428.  
  2429. 7C80-7C83  RW    EISA Video ID
  2430. 7C84  RW    EISA Video expansion board control
  2431. 7C85  RW    EISA Setup control
  2432. 7C88  RW    EISA Video Programmable Option Select 0
  2433. 7C89-7C8F  RW    EISA Video Programmable Option Select 1-7
  2434. --------X-P7C84------------------------------
  2435. PORT 7C84 - EISA CONFIGURATION FLAGS (board in slot 7)
  2436.  
  2437. 7C84  RW  configuration flags (see #P1016)
  2438. --------V-P7EEE------------------------------
  2439. PORT 7EEE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (RIGHT)
  2440. SeeAlso: PORT 72EEh"BOUNDS",PORT 76EEh"BOUNDS",PORT 7AEEh"BOUNDS"
  2441.  
  2442. 7EEEw R-  right edge of bounding box for points written via Line Draw register
  2443. --------X-P800080FF--------------------------
  2444. PORT 8000-80FF - available for EISA slot 8
  2445. ----------P82E082EF--------------------------
  2446. PORT 82E0-82EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2447.  
  2448. 82E1  RW  GPIB (adapter 4)
  2449. --------V-P82E882E9--------------------------
  2450. PORT 82E8-82E9 - 8514/A and compatible - CURRENT Y POSITION
  2451. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2452.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2453. SeeAlso: PORT 86E8h,PORT 82EAh
  2454.  
  2455. 82E8w -W  drawing control: current Y position
  2456. --------V-P82EA82EB--------------------------
  2457. PORT 82EA-82EB - S3 Trio64 - CURRENT Y POSITION 2
  2458. SeeAlso: PORT 82E8h
  2459.  
  2460. 82EAw      drawing control: current Y position 2
  2461. --------S-P82F882FF--------------------------
  2462. PORT 82F8-82FF - serial port, description same as 03F8
  2463. --------V-P83C083CF--------------------------
  2464. PORT 83C0-83CF - Compaq QVision - Line Draw Engine
  2465. --------V-P83C4------------------------------
  2466. PORT 83C4 - Compaq Qvision EISA - Virtual Controller Select
  2467. --------V-P83C683C9--------------------------
  2468. PORT 83C6-83C9 - Compaq Qvision EISA - DAC color registers
  2469. SeeAlso: PORT 03C6h
  2470. --------V-P83C683C9--------------------------
  2471. PORT 83C6-83C9 - Chips&Technologies 64200 (Wingine) - DAC color registers
  2472. SeeAlso: PORT 03C6h
  2473.  
  2474. 83C6  RW  color palette pixel mask
  2475. 83C7  R-  color palette state
  2476. 83C7  -W  color palette read-mode index
  2477. 83C8  RW  color palette write-mode index
  2478. 83C9  RW  color palette data (three bytes)
  2479. ----------P83D09FD3--------------------------
  2480. PORT 83D0-9FD3 - Chips&Techs 64310 - 32-BIT EXTENSION REGS - BitBLT
  2481. Notes:    All ports are word or dword accessible.
  2482.     These registers are also accessible in the upper 2 MB of the 4 MB
  2483.       linear memory frame buffer (address specified in PCI configuration
  2484.       registers).
  2485. SeeAlso: PORT 03D6h"Chips",PORT A3D0h"Chips"
  2486.  
  2487. 83D0d RW  "DR00"  BitBlt offset register (see #P1026)
  2488. 87D0d RW  "DR01"  BitBlt pattern ROP register (see #P1027)
  2489. 8BD0d RW  "DR02"  BitBlt background color register (see #P1028)
  2490. 8FD0d RW  "DR03"  BitBlt foreground color register (see #P1029)
  2491. 93D0d RW  "DR04"  BitBlt control register (see #P1030)
  2492. 97D0d RW  "DR05"  BitBlt source register (see #P1031)
  2493. 9BD0d RW  "DR06"  BitBlt destination register (see #P1032)
  2494. 9FD0d RW  "DR07"  BitBlt command register (see #P1033)
  2495.  
  2496. Bitfields for Chips&Technologies 64310 "DR00" BitBlt offset register:
  2497. Bit(s)    Description    (Table P1026)
  2498.  31-28    reserved (0)
  2499.  27-16    destination offset
  2500.  15-12    reserved (0)
  2501.  11-0    source offset
  2502.  
  2503. Bitfields for Chips&Technologies 64310 "DR01" BitBlt pattern ROP register:
  2504. Bit(s)    Description    (Table P1027)
  2505.  31-21    reserved (0)
  2506.  20-0    pattern pointer (must be pattern size aligned)
  2507. Note:    Do not read this register while BitBlt is active.
  2508.  
  2509. Bitfields for Chips&Technologies 64310 "DR02" BitBlt background color register:
  2510. Bit(s)    Description    (Table P1028)
  2511.  31-16    reserved (contents of bits 15-0 on read)
  2512.  15-0    background color for opaque mono-color expansions
  2513.     (all bits must be used; use same data in bits 15-8 and 7-0 for 8BPP)
  2514.  
  2515. Bitfields for Chips&Technologies 64310 "DR03" BitBlt foreground color register:
  2516. Bit(s)    Description    (Table P1029)
  2517.  31-16    reserved (contents of bits 15-0 on read)
  2518.  15-0    foreground color for mono-color expansions/color for solid paint
  2519.       operations
  2520.     (all bits must be used; use same data in bits 15-8 and 7-0 for 8BPP)
  2521.  
  2522. Bitfields for Chips&Technologies 64310 "DR04" BitBlt control register:
  2523. Bit(s)    Description    (Table P1030)
  2524.  31-28    reserved (0)
  2525.  27-24    buffer status (number of dwords that can be written to the chip)
  2526.  23-21    reserved (0)
  2527.  20    BitBlt status (read-only)
  2528.     0 = idle
  2529.     1 = active (do not write BitBlt registers)
  2530.  19    0 = bitmap pattern
  2531.     1 = solid pattern (brush)
  2532.  18-16    pattern starting row
  2533.  15-14    BitBlt source (destination always video frame buffer)
  2534.     00 = video frame buffer
  2535.     01 = system memory
  2536.     1x = reserved
  2537.  13    background for monochrome pattern and font expansion
  2538.     0 = opaque (color in DR02)
  2539.     1 = transparent (unchanged)
  2540.  12    pattern depth
  2541.     0 = color
  2542.     1 = monochrome
  2543.  11    source depth
  2544.     0 = color
  2545.     1 = monochrome (font expansion only if bit 9 = 1)
  2546.  10    source data
  2547.     0 = selected by bit 14
  2548.     1 = foreground color reg (DR03)
  2549.  9    X direction (use when source and destination areas overlap)
  2550.     0 = decrement (right to left)
  2551.     1 = increment (left to right)
  2552.  8    Y direction (use when source and destination areas overlap)
  2553.     0 = decrement (bottom to top)
  2554.     1 = increment (top to bottom)
  2555.  7-0    raster operation (as defined by Windows)
  2556. SeeAlso: #P1031,#P1033
  2557.  
  2558. Bitfields for Chips&Technologies 64310 "DR05" BitBlt source register:
  2559. Bit(s)    Description    (Table P1031)
  2560.  31-21    reserved (0)
  2561.  20-0    source block address (must be byte aligned)
  2562. Note:    Do not read this register while BitBlt is active.
  2563. SeeAlso: #P1030,#P1032
  2564.  
  2565. Bitfields for Chips&Technologies 64310 "DR06" BitBlt destination register:
  2566. Bit(s)    Description    (Table P1032)
  2567.  31-21    reserved (0)
  2568.  20-0    destination block address (must be byte aligned)
  2569. Note:    Do not read this register while BitBlt is active.
  2570. SeeAlso: #P1031,#P1033
  2571.  
  2572. Bitfields for Chips&Technologies 64310 "DR07" BitBlt command register:
  2573. Bit(s)    Description    (Table P1033)
  2574.  31-28    reserved (0)
  2575.  27-16    lines per block
  2576.  15-12    reserved (0)
  2577.  11-0    bytes per line
  2578. SeeAlso: #P1031,#P1032
  2579. --------S-P83F883FF--------------------------
  2580. PORT 83F8-83FF - serial port, description same as 03F8
  2581. --------X-P840084FF--------------------------
  2582. PORT 8400-84FF - available for EISA slot 8
  2583. --------V-P86E886E9--------------------------
  2584. PORT 86E8-86E9 - 8514/A and compatible - CURRENT X POSITION
  2585. Desc:    define the column at which the first pixel of a line, rectangle, etc.
  2586.       will be drawn; (Trio64) define the column at which the first of two
  2587.       edges for a polygon or trapezoid will begin
  2588. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2589.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2590. SeeAlso: PORT 82E8h,PORT 8AE8h,86EAh
  2591.  
  2592. 86E8w -W  drawing control: current X position (bits 11-0)
  2593. --------V-P86EA86EB--------------------------
  2594. PORT 86EA-86EB - S3 Trio64 - CURRENT X POSITION 2
  2595. Desc:    define the column at which the second of two edges for a polygon or
  2596.       trapezoid will begin
  2597. SeeAlso: PORT 86E8h
  2598.  
  2599. 86EAw RW  drawing control: current X position 2 (bits 11-0)
  2600. --------X-P880088FF--------------------------
  2601. PORT 8800-88FF - available for EISA slot 8
  2602. --------V-P8AE88AE9--------------------------
  2603. PORT 8AE8-8AE9 - 8514/A and compatible - DESTINATION Y POSITION
  2604. Desc:    define the top row of the destination for a BLT, the axial step
  2605.       constant for a line, or the ending row of a line segment in a
  2606.       polyline; (Trio64) define the ending row of the first edge drawn
  2607.       for a polygon or trapezoid
  2608. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2609.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2610. SeeAlso: PORT 82E8h,PORT 86E8h
  2611.  
  2612. 8AE8w -W  drawing control: destination Y position / axial step constant
  2613.       (see #P1034)
  2614. Note:    this port may be read on S3 chipsets
  2615.  
  2616. Bitfields for 8514/A destination Y position / axial step constant register:
  2617. Bit(s)    Description    (Table P1034)
  2618.  11-0    destination Y position
  2619.  13-0    axial step constant for line drawing
  2620.  15-14    reserved
  2621. --------V-P8AEA8AEB--------------------------
  2622. PORT 8AEA-8AEB - S3 Trio64 - DESTINATION Y COORD 2 / AXIAL STEP CONSTANT 2
  2623. Desc:    define the row at which the second of two edges for a polygon or
  2624.       trapezoid will end, or the axial step constant for the second of
  2625.       two edges for a Bresenham trapezoid
  2626. SeeAlso: PORT 8AE8h
  2627.  
  2628. 8AEAw RW  drawing control: destination Y position 2 / axial step constant 2
  2629.       (see #P1034)
  2630. --------X-P8C008CFF--------------------------
  2631. PORT 8C00-8CFF - available for EISA slot 8
  2632. --------X-P8C808C83--------------------------
  2633. PORT 8C80-8C83 - EISA board product ID (board in slot 8)
  2634. SeeAlso: PORT 1C80h-1C83h
  2635. --------X-P8C84------------------------------
  2636. PORT 8C84 - EISA CONFIGURATION FLAGS (board in slot 8)
  2637.  
  2638. 8C84  RW  configuration flags (see #P1016)
  2639. --------V-P8EE88EE9--------------------------
  2640. PORT 8EE8-8EE9 - 8514/A and compatible - DESTINATION X POSITION
  2641. Desc:    define the left column of the destination for a BLT, the diagonal step
  2642.       constant for a line, or the ending column of a line segment in a
  2643.       polyline; (Trio64) define the ending column of the first edge drawn
  2644.       for a polygon or trapezoid
  2645. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2646.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2647. SeeAlso: PORT DAEEh"Mach32",PORT 8EEAh
  2648.  
  2649. 8EE8w -W  drawing control: destination X position / axial step constant
  2650.       (see #P1034)
  2651. --------V-P8EEA8EEB--------------------------
  2652. PORT 8EEA-8EEB - S3 Trio64 - DESTINATION X COORD 2 / AXIAL STEP CONSTANT 2
  2653. Desc:    define the column at which the second of two edges for a polygon or
  2654.       trapezoid will end, or the axial step constant for the second of
  2655.       two edges for a Bresenham trapezoid
  2656. SeeAlso: PORT 8EE8h
  2657.  
  2658. 8EEAw RW  drawing control: destination X position 2 / diagonal step constant 2
  2659.       (see #P1034)
  2660. --------V-P8EEE------------------------------
  2661. PORT 8EEE - ATI Mach32 - READ EXTENDED GRAPHICS CONFIGURATION
  2662. SeeAlso: PORT 72EEh
  2663.  
  2664. 8EEE  R-  read extended graphics configuration (see #P1025)
  2665. --------X-P900090FF--------------------------
  2666. PORT 9000-90FF - available for EISA slot 9
  2667. --------V-P92E892E9--------------------------
  2668. PORT 92E8-92E9 - 8514/A and compatible - BRESENHAM ERROR TERM
  2669. Desc:    specify the initial error term for drawing a line using the Bresenham
  2670.       algorithm
  2671. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2672.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2673.     the error term is 2*min(|dx|,|dy|) - max(|dx|,|dy|) - 1 [startX < endX]
  2674.     or 2*min(|dx|,|dy|) - max(|dx|,|dy|) [startX >= endX]
  2675. SeeAlso: PORT 92EAh
  2676.  
  2677. 92E8w -W  drawing control: Bresenham error term (bits 13-0)
  2678. --------V-P92EA92EB--------------------------
  2679. PORT 92EA-92EB - S3 Trio64 - LINE ERROR TERM 2
  2680. Desc:    specify the initial error term for the second edge of a Bresenham
  2681.       trapezoid
  2682. SeeAlso: PORT 92E8h
  2683.  
  2684. 92EAw RW  drawing control: Bresenham error term 2 (bits 13-0)
  2685. --------X-P940094FF--------------------------
  2686. PORT 9400-94FF - available for EISA slot 9
  2687. --------V-P96E896E9--------------------------
  2688. PORT 96E8-96E9 - 8514/A and compatible - MAJOR AXIS PIXEL COUNT
  2689. Desc:    specify the pixel length of the longest axis of a line, or the width
  2690.       of a rectangle, BLT, or image transfer; (Trio64) specify the major
  2691.       axis length of the first edge of a Bresenham trapezoid
  2692. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2693.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2694.     the value programmed into this register is one less than the desired
  2695.       width or major-axis length
  2696. SeeAlso: PORT 96EAh
  2697.  
  2698. 96E8w R-  enter WD Enhanced Mode
  2699. 96E8w -W  drawing control: major axis pixel count (bits 11-0)
  2700. --------V-P96EA96EB--------------------------
  2701. PORT 96EA-96EB - S3 Trio64 - MAJOR AXIS PIXEL COUNT 2
  2702. Desc:    specify the major axis length of the second edge for a Bresenham
  2703.       trapezoid
  2704. Note:    the value programmed into this register is one less than the desired
  2705.       width or major-axis length
  2706. SeeAlso: PORT 96E8h
  2707.  
  2708. 96EAw RW  drawing control: major axis pixel count 2 (bits 11-0)
  2709. --------X-P980098FF--------------------------
  2710. PORT 9800-98FF - available for EISA slot 9
  2711. --------V-P9AE89AE9--------------------------
  2712. PORT 9AE8-9AE9 - 8514/A and compatible - GRAPHICS PROCESSOR STATUS / COMMAND
  2713. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2714.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2715. SeeAlso: PORT 9AEAh
  2716.  
  2717. 9AE8w R-  drawing control: graphic processor status (see #P1035)
  2718. 9AE8w -W  drawing control: command register (see #P1036)
  2719.  
  2720. Bitfields for 8514/A graphic processor status:
  2721. Bit(s)    Description    (Table P1035)
  2722.  15-10    (8514/A) reserved
  2723.  15    (S3 Trio64 only) queue status flags 9
  2724.  14-11    (S3 Trio64 only) queue status flags 10-13
  2725.  10    (S3 Trio64 only) all FIFO slots are empty
  2726.  9    hardware busy
  2727.  8    (8514/A) data ready
  2728.     (S3 Trio64) reserved
  2729.  7    queue status flag 1
  2730.  6-0    queue status flags 2-8 (0=empty, 1=filled)
  2731.     (each bit represents a position in queue)
  2732. Note:    queue status flag N is cleared whenever at least N slots are available
  2733.       in the FIFO; at any given time, the CPU may write only as many values
  2734.       to the FIFO as there are slots available
  2735. SeeAlso: #P1036
  2736.  
  2737. Bitfields for 8514/A command register :
  2738. Bit(s)    Description    (Table P1036)
  2739.  15-13    command (see #P1037)
  2740.  12    byte sequence (0=high byte first, 1=low byte first)
  2741.  11-10    (8514/A) reserved
  2742.  11    (S3 Trio) high bit of command (see #P1037)
  2743.  10    (S3 Trio) enable 32-bit write access
  2744.  9    enable 16-bit write access (16BIT)
  2745.  8    0=use 8514/A data, 1=pixel data trans reg (PCDATA) (see PORT E2E8h)
  2746.  7    0=draw vector above, 1=draw vector below (INC_Y)
  2747.  6    0=x is maj. axis, 1=y is maj. axis (YMAJAXIS)
  2748.  5    0=draw vector left, 1=draw vector right (INC_X)
  2749.     (bits 7-5 are the drawing direction in 45-degree increments
  2750.       counterclockwise from the X axis when bit 3 is set)
  2751.  4    0=move only, 1=draw and move (DRAW)
  2752.  3    0=Bresenham line, 1=direct vector (LINETYPE)
  2753.  2    0=draw last pixel, 1=don't draw last pixel (LASTPIX)
  2754.  1    0=single pixel, 1=4pixel (PLANAR)
  2755.  0    0=read data, 1=write data (RD/WR) (must be 1 on S3 Trio)
  2756. SeeAlso: #P1035,#P1038
  2757.  
  2758. (Table P1037)
  2759. Values for 8514/A command:
  2760.  000    no operation (used to force synchronization with graphics processor,
  2761.       or to set up short stroke vector drawing without writing any pixels)
  2762.  001    draw vector
  2763.  010    fast rectangle fill
  2764.  011    (8514/A) rectangle fill vertical #1
  2765.     (S3 Trio64) polygon fill solid
  2766.  100    (8514/A) rectangle fill vertical #2 (4 pixels)
  2767.     (S3 Trio64) 4-point trapezoid fill solid
  2768.  101    (8514/A) draw vector, 1 pixel/scanline
  2769.     (S3 Trio64) Bresenham trapezoid fill solid
  2770.  110    copy rectangle
  2771.  111    (8514/A) reserved
  2772.     (S3 Trio64) patterned BLT
  2773. ---S3 Trio64---
  2774.  1001    polyline / 2-point line
  2775.  1011    polygon fill pattern
  2776.  1100    4-point trapezoid fill pattern
  2777.  1101    Bresenham trapezoid fill pattern
  2778. SeeAlso: #P1036
  2779. --------V-P9AEA9AEB--------------------------
  2780. PORT 9AEA-9AEB - S3 Trio64 - DRAWING COMMAND 2
  2781. Desc:    specify the drawing direction for the second edge of a Bresenham
  2782.       trapezoid
  2783. SeeAlso: PORT 9AE8h
  2784.  
  2785. 9AEAw -W  drawing command 2 (see #P1038)
  2786.  
  2787. Bitfields for S3 Trio64 Drawing Command 2 register:
  2788. Bit(s)    Description    (Table P1038)
  2789.  15-8    reserved
  2790.  7-5    drawing direction
  2791.      7    0=draw vector above, 1=draw vector below (INC_Y)
  2792.      6    0=x is maj. axis, 1=y is maj. axis (YMAJAXIS)
  2793.      5    0=draw vector left, 1=draw vector right (INC_X)
  2794.  4-0    reserved
  2795. SeeAlso: #P1036
  2796. --------V-P9AEE------------------------------
  2797. PORT 9AEE - ATI Mach8/Mach32 - LINEDRAW INDEX REGISTER
  2798. SeeAlso: PORT FEEEh
  2799.  
  2800. 9AEE  -W  linedraw index register (specifies interpretation of PORT FEEEh)
  2801.       (see #P1039)
  2802.  
  2803. (Table P1039)
  2804. Values for ATI Mach8/Mach32 Linedraw Index Register:
  2805.  00h    set current X
  2806.  01h    set current Y
  2807.  02h    set Line End X
  2808.  03h    set Line End Y, draw line, and reset register to 02h
  2809.  04h    set current X (perform moves instead of draws)
  2810.  05h    set current Y and reset register to 04h
  2811. --------X-P9C009CFF--------------------------
  2812. PORT 9C00-9CFF - available for EISA slot 9
  2813. --------X-P9C809C83--------------------------
  2814. PORT 9C80-9C83 - EISA board product ID (board in slot 9)
  2815. SeeAlso: PORT 1C80h-1C83h
  2816. --------X-P9C84------------------------------
  2817. PORT 9C84 - EISA CONFIGURATION FLAGS (board in slot 9)
  2818.  
  2819. 9C84  RW  configuration flags (see #P1016)
  2820. --------V-P9EE89EE9--------------------------
  2821. PORT 9EE8-9EE9 - 8514/A and compatible - SHORT STROKE VECTORS
  2822. Desc:    specify two short-stroke vectors to be drawn one after the other
  2823. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2824.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2825.     bit 12 of the command register (see PORT 9AE8h,#P1036) specifies which
  2826.       vector is drawn first
  2827.  
  2828. 9EE8w -W  short line vector transfer (see #P1040)
  2829.  
  2830. Bitfields for 8514/A short-stroke vector:
  2831. Bit(s)    Description    (Table P1040)
  2832.  15-13    second vector: drawing direction
  2833.  12    second vector: draw/move
  2834.  11-0    second vector: length in pixels (less 1)
  2835.  7-5    first vector: drawing direction
  2836.     000  zero degrees = right
  2837.     001  45 degress = up and right
  2838.     010  90 degrees = up
  2839.     ...
  2840.     111 315 degrees = down and right
  2841.  4    first vector: draw/move (=0 move only, =1 draw and move)
  2842.  3-0    first vector: length in pixels (less 1)
  2843. --------S-PA220------------------------------
  2844. PORT A220 - soundblaster support in AMI Hi-Flex BIOS  ????
  2845. ----------PA2E0A2EF--------------------------
  2846. PORT A2E0-A2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2847.  
  2848. A2E1  RW  GPIB (adapter 5)
  2849. --------V-PA2E8A2EB--------------------------
  2850. PORT A2E8-A2EB - 8514/A and compatible - BACKGROUND COLOR
  2851. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2852.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2853. SeeAlso: PORT A6E8h
  2854.  
  2855. A2E8w -W  drawing control: background color
  2856. A2E8d RW  (S3) drawing control: 32bpp background color
  2857. --------V-PA2EEA2EF--------------------------
  2858. PORT A2EE-A2EF - ATI Mach8/Mach32 - LINE DRAW OPTIONS
  2859. SeeAlso: PORT 8EEEh,PORT CEEEh
  2860.  
  2861. A2EEw RW  line drawing options (see #P1041)
  2862.  
  2863. Bitfields for ATI Mach8/Mach32 line drawing options:
  2864. Bit(s)    Description    (Table P1041)
  2865.  10-9    clipping mode
  2866.     00 disable clip exception
  2867.     01 stroked plain lines
  2868.     10 polygon boundary lines
  2869.     11 patterned lines
  2870.  8    reset all Bounds Accumulator registers
  2871.  7-5    OCTANT: direction for BitBlts or lines
  2872.  3    direction specification
  2873.     0 = Bresenham/Octant
  2874.         bit 7: increment Y
  2875.         bit 6: Y is major axis instead of X
  2876.         bit 5: increment X
  2877.     1 = line-length and degrees
  2878.         OCTANT field species N*45 degrees
  2879.  2    do NOT draw last pixel of a line
  2880.  1    polyline draw
  2881. ----------PA3D0BFD3--------------------------
  2882. PORT A3D0-BFD3 - Chips&Techs 64310 - 32-BIT EXTENSION REGS - CURSOR CONTROL
  2883. Notes:    All ports are word or dword accessible.
  2884.     These registers are also accessible in the upper 2 MB of the 4 MB
  2885.       linear memory frame buffer (address specified in PCI configuration
  2886.       registers).
  2887. SeeAlso: PORT 03D6h"Chips",PORT 83D0h"Chips"
  2888.  
  2889. A3D0d RW  "DR08"  cursor control register (see #P1042)
  2890. A7D0d RW  "DR09"  cursor color register (see #P1043)
  2891. ABD0d --  "DR0A"  reserved
  2892. AFD0d RW  "DR0B"  cursor position register (see #P1044)
  2893. B3D0d RW  "DR0C"  cursor base address (see #P1045)
  2894. B7D0d --  "DR0D"  reserved
  2895. BBD0d --  "DR0E"  reserved
  2896. BFD0d --  "DR0F"  reserved
  2897.  
  2898. Bitfields for Chips&Technologies 64310 "DR08" cursor control register:
  2899. Bit(s)    Description    (Table P1042)
  2900.  31-8    reserved (0)
  2901.  7-6    test (must be 0)
  2902.  5    upper left corner (ULC) select
  2903.     (all x, y positioning is relative to selected ULC)
  2904.     0 = active display (BLANK#) (cursor can be positioned in overscan
  2905.       area)
  2906.     1 = display enable (cursor cannot be positioned to overscan area)
  2907.  4-2    reserved (must be 0)
  2908.  1-0    hardware cursor enable
  2909.     00 = disable
  2910.     01 = 32x32 cursor enable
  2911.     10 = 64x64 cursor enable
  2912.     11 = illegal/reserved
  2913.  
  2914. Bitfields for Chips&Technologies 64310 "DR09" cursor color register:
  2915. Bit(s)    Description    (Table P1043)
  2916.  31-27    cursor color 1 red
  2917.  26-21    cursor color 1 green
  2918.  20-16    cursor color 1 blue
  2919.  15-11    cursor color 0 red
  2920.  10-5    cursor color 0 green
  2921.  4-0    cursor color 0 blue
  2922. SeeAlso: #P1044,#P1045
  2923.  
  2924. Bitfields for Chips&Technologies 64310 "DR0B" cursor position register:
  2925. Bit(s)    Description    (Table P1044)
  2926.  31    Y sign
  2927.  30-27    reserved (0)
  2928.  26-16    cursor position Y offset from ULC (DR08 bit 5)
  2929.  15    X sign
  2930.  14-11    reserved (0) (ignored)
  2931.  10-0    cursor position X offset from ULC (DR08 bit 5)
  2932. SeeAlso: #P1043,#P1045
  2933.  
  2934. Bitfields for Chips&Technologies 64310 "DR0C" cursor base address:
  2935. Bit(s)    Description    (Table P1045)
  2936.  31-21    reserved (0)
  2937.  20-10    base address for cursor data in display memory
  2938.     (cursor data must be at 1K boundary in off-screen memory)
  2939.  9-0    reserved (0)
  2940. SeeAlso: #P1043,#P1044
  2941. --------V-PA6E8A6EB--------------------------
  2942. PORT A6E8-A6EB - 8514/A and compatible - FOREGROUND COLOR
  2943. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2944.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2945. SeeAlso: PORT A2E8h,PORT AAE8h,PORT AEE8h
  2946.  
  2947. A6E8w -W  drawing control: foreground color
  2948. A6E8d RW  (S3) drawing control: foreground color for 32bpp modes
  2949. --------V-PAAE8AAEB--------------------------
  2950. PORT AAE8-AAEB - 8514/A and compatible - WRITE MASK
  2951. Desc:    specify which bit planes are updates when a pixel is written
  2952. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2953.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2954. SeeAlso: PORT A6E8h,PORT AEE8h
  2955.  
  2956. AAE8w -W  drawing control: write mask
  2957. AAE8d RW  (S3) drawing control: write mask for 32bpp modes
  2958. --------V-PAEE8AEEB--------------------------
  2959. PORT AEE8-AEEB - 8514/A and compatible - READ MASK
  2960. Desc:    specify which bit planes are used as a data source
  2961. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2962.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2963. SeeAlso: PORT AAE8h,PORT B2E8h
  2964.  
  2965. AEE8w -W  drawing control: read mask
  2966. AEE8d RW  (S3) drawing control: read mask for 32bpp modes
  2967. --------V-PAFFF------------------------------
  2968. PORT AFFF - VIDEO REGISTER
  2969.  
  2970. AFFF  RW  plane 0-3 system latch (video register)
  2971. --------S-PB220B227--------------------------
  2972. PORT B220-B227 - serial port, description same as 03F8
  2973. --------S-PB228B22F--------------------------
  2974. PORT B228-B22F - serial port, description same as 03F8
  2975. --------V-PB2E8B2EB--------------------------
  2976. PORT B2E8-B2EB - 8514/A and compatible - COLOR COMPARE
  2977. Notes:    supported by ATI Graphics Ultra
  2978.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2979. SeeAlso: PORT B6E8h,PORT BAE8h,PORT BEE8h
  2980.  
  2981. B2E8w -W  drawing control: color compare
  2982. B2E8d RW  (S3) drawing control: color compare for 32bpp modes
  2983. --------V-PB2EE------------------------------
  2984. PORT B2EE - ATI Mach32 - ???
  2985.  
  2986. B2EEw RW  ???
  2987. --------V-PB6E8B6E9--------------------------
  2988. PORT B6E8-B6E9 - 8514/A and compatible - BACKGROUND MIX
  2989. Notes:    supported by ATI Mach8 and Mach32 chipsets
  2990.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  2991. SeeAlso: PORT BAE8h,PORT BEE8h,PORT B2E8h
  2992.  
  2993. B6E8w -W  drawing control: background mix (see #P1046)
  2994. Note:    this register may be read on S3 chipsets
  2995. --------V-PB6EE------------------------------
  2996. PORT B6EE - ATI Mach32 - ???
  2997.  
  2998. B6EEw RW  ???
  2999. --------V-PBAE8BAE9--------------------------
  3000. PORT BAE8-BAE9 - 8514/A and compatible - FOREGROUND MIX
  3001. Notes:    supported by ATI Mach8 and Mach32 chipsets
  3002.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  3003. SeeAlso: PORT B6E8h
  3004.  
  3005. BAE8w -W  drawing control: foreground mix (see #P1046)
  3006. Note:    this register may be read on S3 chipsets
  3007.  
  3008. Bitfields for 8514/A color mix register:
  3009. Bit(s)    Description    (Table P1046)
  3010.  15-7    reserved
  3011.  6-5    color source
  3012.     00 background color
  3013.     01 foreground color
  3014.     10 CPU data
  3015.     11 display memory
  3016.  4    reserved
  3017.  3-0    mix type
  3018.     0000 negate current color
  3019.     0001 logical zero
  3020.     0010 logical one
  3021.     0011 leave unchanged
  3022.     0100 negate new color
  3023.     0101 current XOR new
  3024.     0110 negate (current XOR new)
  3025.     0111 new color
  3026.     1000 (NOT current) OR (NOT new)
  3027.     1001 current OR (NOT new)
  3028.     1010 (NOT current) OR new
  3029.     1011 current OR new
  3030.     1100 current AND new
  3031.     1101 (NOT current) AND new
  3032.     1110 current AND (NOT new)
  3033.     1111 (NOT current) AND (NOT new)
  3034. --------V-PBAEE------------------------------
  3035. PORT BAEE - ATI Mach32 - ???
  3036.  
  3037. BAEEw RW  ???
  3038. --------V-PBEE8BEE9--------------------------
  3039. PORT BEE8-BEE9 - 8514/A and compatible - MULTIFUNCTION CONTROL
  3040. Notes:    supported by ATI Mach8 and Mach32 chipsets
  3041.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  3042.     writes to the registers accessed via this port are pipelined; a NOP
  3043.       command (see PORT 9AE8h) is required to ensure correct read-back
  3044.       immediately after a write
  3045.  
  3046. BEE8w -W  drawing control: multi-function control (see #P1048)
  3047. BEE8w R-  (S3) value of register specified by current value of multi-function
  3048.       read select register (index 0Fh bits 3-0) (see #P1048)
  3049.  
  3050. (Table P1047)
  3051. Values for index into 8514/A multi-function drawing control registers:
  3052.  00h RW minor axis pixel count
  3053.  01h RW top scissors
  3054.  02h RW left scissors
  3055.  03h RW bottom scissors
  3056.  04h RW right scissors
  3057.  05h -W memory control register
  3058.  08h -W fixed pattern low
  3059.  09h -W fixed pattern high
  3060.  0Ah RW data manipulation control
  3061. ---S3 chipsets---
  3062.  0Dh RW (S3 864/964) miscellaneous 2
  3063.  0Eh RW (S3 801+) miscellaneous
  3064.  0Fh -W (S3 801/805/928) read register select (see #P1049)
  3065. SeeAlso: #P1048
  3066.  
  3067. Bitfields for 8514/A Multi-Function Control registers:
  3068. Bit(s)    Description    (Table P1048)
  3069.  15-12    register index (see #P1047)
  3070. ---register 00h: minor axis pixel count---
  3071.  11-0    rectangle height - 1
  3072. ---register 01h: top scissors---
  3073.  11-0    top edge of clipping box
  3074. ---register 02h: left scissors---
  3075.  11-0    left edge of clipping box
  3076. ---register 03h: bottom scissors---
  3077.  11-0    bottom edge of clipping box
  3078. ---register 04h: right scissors---
  3079.  11-0    right edge of clipping box
  3080. ---register 05h: memory control---
  3081.  ???
  3082. ---register 08h: fixed pattern low---
  3083.  11-8    (S3 Trio32/64) reserved
  3084.  7-6    mix register
  3085.     00 always select Foreground Mix register
  3086.     01 reserved
  3087.     10 mix register selected by CPU data
  3088.     11 mix register selected by display memory value
  3089.  5-0    (S3 Trio32/64) reserved
  3090. ---register 09h: fixed pattern high---
  3091.  ???
  3092. ---register 0Ah: data manipulation control---
  3093.  ???
  3094. ---register 0Dh: miscellaneous 2---
  3095.  11-7    reserved
  3096.  6-4    source base address
  3097.     000 in first meg of display memory
  3098.     001 in second meg
  3099.     010 in third meg
  3100.     011 in fourth meg
  3101.  3    reserved
  3102.  2-0    destination base address (settings as for bits 6-4)
  3103. ---register 0Eh: miscellaneous---
  3104.  11-10    reserved (0)
  3105.  9    select 32-bit command registers; disable byte and word writes to regs
  3106.     (see PORT A2E8h,PORT A6E8h,PORT AAE8h,PORT B2E8h)
  3107.  8    enable color comparison
  3108.  7    don't update bitmap if source color differs from Color Compare register
  3109.       (see PORT B2E8h)
  3110.  6    slow Graphics Engine read/modify/write cycle (adds one wait state)
  3111.  5    clipping direction
  3112.     =0 draw only inside clip rectangle
  3113.     =1 draw only outside clip rectangle
  3114.  4    select upper 16 bits of 32-bit registers in 32 bpp graphics mode
  3115.  3-2    source base address, bits 21-20
  3116.  1-0    destination base address, bits 21-20
  3117.     Note:    these base addresses are ignored if the corresponding base
  3118.           address in register 0Dh is nonzero
  3119. ---register 0Fh: multifunction read select---
  3120.  11-4    reserved
  3121.  3-0    (S3)    read select (see #P1049)
  3122.  2-0    (8514/A) read select (see #P1049)
  3123.  
  3124. (Table P1049)
  3125. Values for S3 multifunction read select register:
  3126.  00h    PORT BEE8h register 00h
  3127.  01h    PORT BEE8h register 01h
  3128.  02h    PORT BEE8h register 02h
  3129.  03h    PORT BEE8h register 03h
  3130.  04h    PORT BEE8h register 04h
  3131.  05h    PORT BEE8h register 0Ah
  3132.  06h    PORT BEE8h register 0Eh
  3133.  07h    PORT 9AE8h (bits 11-0 only)
  3134. ---S3 864/964 only---
  3135.  08h    PORT 42E8h (bits 11-0 only)
  3136.  09h    PORT 46E8h
  3137.  0Ah    PORT BEE8h register 0Dh
  3138. SeeAlso: #P1047,#P1048
  3139. --------X-PC000CFFF--------------------------
  3140. PORT C000-CFFF - PCI Configuration Mechanism 2 - CONFIGURATION SPACE
  3141. Note:    to access the configuration space, write the target bus number to
  3142.       PORT 0CFAh, then write to the Configuration Space Enable register
  3143.       (PORT 0CF8h), and finally read or write the appropriate I/O
  3144.       port(s) in the range C000h to CFFFh (where Cxrrh accesses location
  3145.       'rr' in physical device 'x's configuration data)
  3146. SeeAlso: PORT 0CF8h"Mechanism 2",PORT 0CFAh"Mechanism 2"
  3147. SeeAlso: #00878 at INT 1A/AX=B10Ah
  3148. --------d-PC100C1FF--------------------------
  3149. PORT C100-C1FF - Intel Pentium mboard - PCTech RZ1000 EIDE controller
  3150. Desc:    the PCI configuration registers for the EIDE controller are visible
  3151.       on these ports when the PCI configuration space has been opened via
  3152.       ports 0CF8h and 0CFAh
  3153. SeeAlso: PORT 03F0h"RZ1000",PORT 0CF8h,#00878 at INT 1A/AX=B10Ah
  3154. ----------PC200C204--------------------------
  3155. PORT C200-C204 - Intel Pentium mboard ("Neptune" chipset)
  3156. Desc:    the PCI configuration registers for the motherboard chipset are visible
  3157.       on these ports when the PCI configuration space has been opened via
  3158.       ports 0CF8h and 0CFAh
  3159. SeeAlso: #00878 at INT 1A/AX=B10Ah
  3160. --------S-PC220C227--------------------------
  3161. PORT C220-C227 - serial port, description same as 03F8
  3162. --------S-PC228C22F--------------------------
  3163. PORT C228-C22F - serial port, description same as 03F8
  3164. ----------PC244------------------------------
  3165. PORT C244 - Intel Pentium mboard ("Neptune" chipset)
  3166. ----------PC2E0C2EF--------------------------
  3167. PORT C2E0-C2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  3168.  
  3169. C2E1  RW  GPIB (adapter 6)
  3170. --------V-PC2EE------------------------------
  3171. PORT C2EE - ATI Mach32 - ???
  3172.  
  3173. C2EEw RW  ???
  3174. --------V-PC6EE------------------------------
  3175. PORT C6EE - ATI Mach32 - SHORT-STROKE VECTOR
  3176.  
  3177. C6EEw -W  short-stroke vector
  3178. --------V-PCAEE------------------------------
  3179. PORT CAEE - ATI Mach32 - ???
  3180.  
  3181. CAEEw RW  ???
  3182. ----------PCEEE------------------------------
  3183. PORT CEEE - ATI Mach8/Mach32 - DATAPATH CONFIGURATION
  3184. SeeAlso: PORT 8EEEh
  3185.  
  3186. CEEEw -W  datapath configuration (see #P1050)
  3187.  
  3188. Bitfields for ATI Mach8/Mach32 datapath configuration:
  3189. Bit(s)    Description    (Table P1050)
  3190.  15-13    foreground color source
  3191.     000 background color reg
  3192.     001 foreground color reg
  3193.     010 pixel transfer reg
  3194.     011 VRAM BitBlt source
  3195.     101 color pattern shift register
  3196.  12    least-significant byte first
  3197.  9    data width is 16 bits instead of 8 bits
  3198.  8-7    background color source
  3199.     00 background color reg
  3200.     01 foreground color reg
  3201.     10 pixel transfer reg
  3202.     11 VRAM BitBlt source
  3203.  6-5    monochrome data source
  3204.     00 always one
  3205.     01 mono pattern register
  3206.     10 pixel transfer register
  3207.     11 VRAM BitBlt source
  3208.  4    enable drawing
  3209.  2    read color data instead of monochrome data
  3210.  1    enable polygon fill BitBlt
  3211.  0    write data to drawing trajectory instead of reading from trajectory
  3212. --------S-PD220D227--------------------------
  3213. PORT D220-D227 - serial port, description same as 03F8
  3214. SeeAlso: PORT 03F8h,PORT D228h
  3215. --------S-PD228D22F--------------------------
  3216. PORT D228-D22F - serial port, description same as 03F8
  3217. SeeAlso: PORT 03F8h,PORT D220h
  3218. --------V-PD2EE------------------------------
  3219. PORT D2EE - ATI Mach32 - ???
  3220.  
  3221. D2EEw RW  ???
  3222. --------V-PDAEEDAEF--------------------------
  3223. PORT DAEE-DAEF - ATI Mach8/Mach32 - SCISSORS REGION (LEFT)
  3224. SeeAlso: PORT 8EE8h,PORT DEEEh"SCISSORS",PORT E2EEh"SCISSORS"
  3225. SeeAlso: PORT E6EEh"SCISSORS"
  3226.  
  3227. DAEEw -W  left edge of "scissors" drawing area (bits 11-0)
  3228. --------V-PDEEEDEEF--------------------------
  3229. PORT DEEE-DEEF - ATI Mach8/Mach32 - SCISSORS REGION (TOP)
  3230. SeeAlso: PORT DAEEh"SCISSORS",PORT E2EEh"SCISSORS",PORT E6EEh"SCISSORS"
  3231.  
  3232. DEEEw -W  top edge of "scissors" drawing area (bits 11-0)
  3233. ----------PE2E0E2EF--------------------------
  3234. PORT E2E0-E2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  3235.  
  3236. E2E1  RW  GPIB (adapter 7)
  3237. --------V-PE2E8E2E9--------------------------
  3238. PORT E2E8-E2E9 - 8514/A and compatible - PIXEL DATA TRANSFER
  3239. Desc:    all graphics data to be processed by the Graphics Engine is sent
  3240.       through this port
  3241. Notes:    supported by ATI Graphics Ultra
  3242.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  3243.  
  3244. E2E8w -W  drawing control: pixel data transfer
  3245. E2EAw rW  drawing control: pixel data transfer (S3 801+) for 32-bit transfers
  3246. --------V-PE2EEE2EF--------------------------
  3247. PORT E2EE-E2EF - ATI Mach8/Mach32 - SCISSORS REGION (BOTTOM)
  3248. SeeAlso: PORT DAEEh"SCISSORS",PORT DEEEh"SCISSORS",PORT E6EEh"SCISSORS"
  3249.  
  3250. E2EEw -W  bottom edge of "scissors" drawing area (bits 11-0)
  3251. --------V-PE6EEE6EF--------------------------
  3252. PORT E6EE-E6EF - ATI Mach8/Mach32 - SCISSORS REGION (RIGHT)
  3253. SeeAlso: PORT DAEEh"SCISSORS",PORT DEEEh"SCISSORS",PORT E2EEh"SCISSORS"
  3254.  
  3255. E6EEw -W  right edge of "scissors" drawing area (bits 11-0)
  3256. --------V-PEAE8EAEB--------------------------
  3257. PORT EAE8-EAEB - S3 Trio64 - PATTERN
  3258. Desc:    define the position of the top-left corner of an 8x8 pixel pattern
  3259.       stored in off-screen memory which is to be used for patterned fill
  3260.       commands (trapezoid, polygon, etc.)
  3261.  
  3262. EAE8w RW  pattern Y coordinate (bits 11-0)
  3263. EAEAw RW  pattern X coordinate (bits 11-0)
  3264. --------V-PFAEE------------------------------
  3265. PORT FAEE - ATI Mach32 - CHIP IDENTIFICATION REGISTER
  3266. SeeAlso: PORT 56EEh"Mach32",PORT 5EEEh"Mach32"
  3267. --------V-PFEEEFEEF--------------------------
  3268. PORT FEEE-FEEF - ATI Mach8/Mach32 - DIRECT LINE DRAW REGISTER
  3269. SeeAlso: PORT 9AEEh
  3270.  
  3271. FEEEw -W  direct line-draw register
  3272. --------d-Pxxxx------------------------------
  3273. PORT xxxx - Future Domain TMC-3260 PCI SCSI adapter
  3274. Range:    anywhere on 8 byte boundary???
  3275. Note:    Future Domain TMC-3260 PCI SCSI adapter is based upon Future Domain
  3276.       TMC-36C70 SCSI controller which is a PCI version of the TMC-18C30
  3277.       ISA SCSI controller
  3278. SeeAlso: PORT 0140h-014Fh"Future Domain TMC-16x0"
  3279. --------d-Pxxxx------------------------------
  3280. PORT xxxx - AMD Am53C974A PC-SCSI II SCSI adapter
  3281. Range:    anywhere, on a 128-port boundary
  3282. SeeAlso: #00925
  3283.  
  3284. +000  R-  current transfer count register (low)
  3285. +000  -W  start transfer count register (low)
  3286. +004  R-  current transfer count register (middle)
  3287. +004  -W  start transfer count register (middle)
  3288. +008  RW  SCSI FIFO register
  3289. +00C  RW  SCSI command register
  3290. +010  R-  SCSI status register
  3291. +010  -W  destination ID
  3292. +014  R-  interrupt status
  3293. +014  -W  SCSI timeout
  3294. +018  R-  internal state
  3295. +018  -W  synchronous transfer period
  3296. +01C  R-  current FIFO/internal state
  3297. +01C  -W  synchronous offset
  3298. +020  RW  control register 1
  3299. +024  -W  clock factor
  3300. +028  -W  reserved
  3301. +02C  RW  control register 2
  3302. +030  RW  control register 3
  3303. +034  RW  control register 4
  3304. +038  R-  current transfer count register (high) / ID code
  3305. +038  -W  start current transfer count (high)
  3306. +03C      reserved
  3307. +040  RW  DMA command
  3308. +044d RW  DMA starting transfer count (bits 23-0)
  3309. +048d RW  DMA starting physical address
  3310. +04C  R      DMA working byte counter
  3311. +050d R      DMA working address counter
  3312. +054  R      DMA status register
  3313. +058d RW  DMA starting memory descriptor list address
  3314. +05Cd R      DMA working memory descriptor list counter
  3315. +070d Rw  SCSI bus and control (bits 25-24 and 21-0)
  3316. Notes:    the SCSI registers are mapped on DWORD boundaries, even though for most
  3317.       only the least-significant byte is used
  3318.     see "Am53C974A PCscsi(tm) II Technical Manual, Revision 1.0"
  3319.       (file 19113A.PDF) for further details, as well as (file 19084A.PDF)
  3320. --------d-Pxxxx------------------------------
  3321. PORT xxxx - Adaptec AHA-2920 PCI SCSI adapter
  3322. Range:    anywhere on 8 byte boundary???
  3323. Note:    Adaptec AHA-2920 PCI SCSI adapter is based upon Future Domain TMC-36C70
  3324.       SCSI controller which is a PCI version of Future Domain TMC-18C30 ISA
  3325.       SCSI controller
  3326. SeeAlso: PORT 0140h-014Fh"Future Domain TMC-16x0"
  3327. --------d-Pxxxx------------------------------
  3328. PORT xxxx -  Adaptec AIC-78xx PCI SCSI controller
  3329. Range:    anywhere on 256-byte boundary
  3330. Note:    Adaptec AIC-78xx SCSI controllers are basically compatible with the
  3331.       AIC-777x SCSI controllers
  3332. SeeAlso: PORT 0340h-035Fh"Adaptec AHA-152x",PORT 1C00h-1CBFh"Adaptec AIC-777x"
  3333.  
  3334. +000  RW  SCSI sequence control register (SCSISEQ) (see #P0600)
  3335. +001  RW  SCSI transfer control register 0 (SXFRCTL0) (see #P0979)
  3336. +002  RW  SCSI transfer control register 1 (SXFRCTL1) (see #P0980)
  3337. +003  R-  SCSI control signal read  register (SCSISIGI) (see #P0603)
  3338. +003  -W  SCSI control signal write register (SCSISIGO) (see #P0604)
  3339. +004  RW  SCSI rate control register (SCSIRATE) (see #P0981)
  3340. +005  RW  SCSI ID register (SCSIID) (see #P0982)
  3341. +006  RW  SCSI latched data low register (SCSIDATL)
  3342.       read/write causes -ACK to pulse
  3343. +007  RW  (Wide SCSI) SCSI latched data high register (SCSIDATH)
  3344.       read/write causes -ACK to pulse
  3345. +008  RW  SCSI transfer count register (STCNT) (3 bytes long)
  3346. +00B  R-  SCSI status register 0 (SSTAT0) (see #P0607)
  3347. +00B  -W  clear SCSI interrupt register 0 (CLRSINT0) (see #P0983)
  3348. +00C  R-  SCSI status register 1 (SSTAT1) (see #P0609)
  3349. +00C  -W  clear SCSI interrupt register 1 (CLRSINT1) (see #P0610)
  3350. +00D  R-  SCSI status register 2 (SSTAT2) (see #P0984)
  3351. +00E  R-  SCSI status register 3 (SSTAT3) (see #P0612)
  3352. +00F  RW  SCSI test control register (SCSITEST) (see #P0985)
  3353. +010  RW  SCSI interrupt mode register 0 (SIMODE0) (see #P0616)
  3354. +011  RW  SCSI interrupt mode register 1 (SIMODE1) (see #P0617)
  3355. +012  RW  SCSI data bus low register (SCSIBUSL)
  3356. +013  RW  (Wide SCSI) SCSI data bus high register (SCSIBUSH)
  3357. +014d R-  SCSI/host address register (SHADDR)
  3358. +018  RW  selection timeout timer  register (SELTIMER) (see #P0986)
  3359. +019  RW  selection/reselection ID register (SELID)  (see #P0987)
  3360. +01D  ??  (AIC-7870) board control register (BRDCTL) (see #P1051)
  3361. +01E  RW  (AIC-787x/788x) serial EEPROM control register (SEECTL) (see #P1052)
  3362. +01F  RW  SCSI block control register (SBLKCTL) (see #P1053)
  3363. +020  RW  scratch RAM (64 bytes) (see #P1002)
  3364. +060  RW  sequencer control  register (SEQCTL)    (see #P0989)
  3365. +061  RW  sequencer RAM data register (SEQRAM)
  3366. +062w RW  sequencer address  register (SEQADDR) (see #P0990)
  3367. +064  RW  accumulator  register (ACCUM)
  3368. +065  RW  source index register (SINDEX)
  3369. +066  RW  destination index register (DINDEX)
  3370. +069  R-  all ones register (ALLONES)
  3371.       always reads as FFh
  3372. +06A  R-  all zeros register (ALLZEROS)
  3373.       always reads as 00h
  3374. +06B  R-  flags register (FLAGS) (see #P0991)
  3375.       PhaseEngine processor's flags
  3376. +06C  R-  source indirect register (SINDIR)
  3377. +06D  -W  destination indirect register (DINDIR)
  3378. +06E  RW  function 1 register (FUNCTION1)
  3379. +06F  R-  "STACK"
  3380. +084  RW  DSCommand register (DSCOMMAND) (see #P1054)
  3381. +085  RW  bus on/off time register (BUSTIME) (see #P0993)
  3382. +086  RW  (AIC-7870) "DSPCISTATUS"
  3383. +087  RW  host control register (HCNTRL) (see #P0995)
  3384. +088d RW  host address register (HADDR)
  3385. +08C  RW  host counter register (HCNT) (3 bytes long)
  3386. +090  RW  sequence control block (SCB) pointer register (SCBPTR)
  3387. +091  RW  interrupt status register (INTSTAT) (see #P0996)
  3388. +092  R-  hard error register (ERROR) (see #P0997)
  3389. +092  -W  clear interrupt status register (CLRINT) (see #P0998)
  3390. +093  RW  DMA FIFO control register (DFCNTRL)  (see #P0999)
  3391. +094  R-  DMA FIFO status  register (DFSTATUS) (see #P1000)
  3392. +099  RW  DMA FIFO data register (DFDAT)
  3393. +09A  RW  SCB auto-increment register (SCBCNT) (see #P1001)
  3394. +09B  RW  queue in FIFO register (QINFIFO)
  3395.       write places the value into the FIFO, read removes
  3396. +09C  R-  queue in count register (QINCNT)
  3397.       number of the SCBs in the queue in
  3398. +09D  -W  queue out FIFO register (QOUTFIFO)
  3399.       read removes the value from the FIFO
  3400. +09E  R-  queue out count register (QOUTCNT)
  3401.       number of the SCBs in the queue out
  3402. +0A0  RW  SCB array (32 bytes) (see #P1003)
  3403. Note:    AIC-7850 SCSI controllers sporatically get garbage in the MSBs of the
  3404.       queue in/out count registers (QINCNT/QOUTCNT)
  3405.  
  3406. Bitfields for AIC-7870 board control register (BRDCTL):
  3407. Bit(s)    Description    (Table P1051)
  3408.  7    "BRDDAT7"
  3409.     (read) (ROM bank 0) internal 68-pin connector (INT68)
  3410.     =0 present
  3411.     =1 absent
  3412.     (read) (ROM bank 1) EPROM present (EPROMPS)
  3413.  6    "BRDDAT6"
  3414.     (read) (ROM bank 0) internal 50-pin connector (INT50)
  3415.     (read) (ROM bank 1) external 68-pin connector (EXT68)
  3416.     =0 present
  3417.     =1 absent
  3418.     (write) wide termination enable
  3419.  5    (write) "BRDDAT5"
  3420.     ROM bank setting
  3421.     =0 select bank 0
  3422.     =1 select bank 1
  3423.  4    strobe (BRDSTB)
  3424.  3    chip select (BRDCS)
  3425.  2    "BRDRW"
  3426.     =0 write
  3427.     =1 read
  3428.  1    "BRDCTL1"
  3429.  0    "BRDCTL0"
  3430. Notes:    accessing this register requires prior setting of bits 3 and 5 of the
  3431.       serial EEPROM control register (SEECTL)
  3432.     bit 3 must be set to read/write bits 7-5, and reset afterwards
  3433.     bit 4 must be set along with bit 3 for writes, then value must be set
  3434.       into the bits 7-5, and then bit 4 must be reset
  3435.     to read from bits 7-6 first perform a write operation of bit 5 in order
  3436.       to select the ROM bank 0, then bit 2 must be set along with bit 3,
  3437.       and then the data can be read
  3438. SeeAlso: #P1052
  3439.  
  3440. Bitfields for AIC-787x/788x serial EEPROM control register (SEECTL):
  3441. Bit(s)    Description    (Table P1052)
  3442.  7    "EXTARBACK"
  3443.  6    "EXTARBREQ"
  3444.  5    serial EEPROM memory port select? (SEEMS)
  3445.  4    serial EEPROM ready (SEERDY)
  3446.  3    serial EEPROM chip select (SEECS)
  3447.  2    serial EEPROM clock (SEECK)
  3448.  1    serial EEPROM data out (SEEDO)
  3449.  0    serial EEPROM data in  (SEEDI)
  3450. Notes:    AIC-7873/7883 use 93C56/93C66 serial EEPROM chips, others use 93C46;
  3451.       93C46 serial EEPROM chips have 1024 bits organized into 64 16-bit
  3452.       words and use 6 bits to address each word, while 93C56/93C66 chips
  3453.       have 2048 bits organized into 128 16-bit words and use 8 bits to
  3454.       address each word
  3455.     only the first 32 words of serial EEPROM are used by the Adaptec BIOS
  3456.     bits 3-0 are connected to the chip select, clock, data out, and data in
  3457.       pins of the serial EEPROM respectively
  3458.     data in pin of the serial EEPROM can be read through the bit 0 of this
  3459.       register after the clock pin goes from high to low
  3460.     bit 2 must be pulled high and then low for a minimum of 750 and 250 ns
  3461.       to provide clocking for the EEPROM chip
  3462.     bit 2 going from low to high causes the EEPROM chip to sample the data
  3463.       out pin and initiates the next bit to be sent through the data in pin
  3464.     bit 3 must be set for a minimum of 1 mcs with the bit 2 goig high and
  3465.       then low for the EEPROM chip to be selected; then the instruction can
  3466.       be sent to the EEPROM chip
  3467.     instruction can be terminated by taking the EEPROM chip select pin low,
  3468.       with the bit 2 going high and low
  3469.     bit 5 requests access to the memory port; when access is granted, bit 4
  3470.       will be set; during the EEPROM access bit 4 is cleared after writing
  3471.       this register and goes high 800 ns later
  3472. SeeAlso: #P1007,#P1051,#P1055,#P1056
  3473.  
  3474. Bitfields for SCSI block control register (SBLKCTL):
  3475. Bit(s)    Description    (Table P1053)
  3476.  7    diagnostic LED enable (DIAGLEDEN)
  3477.  6    diagnostic LED on (DIAGLEDON)
  3478.  5    auto flush disable (AUTOFLUSHDIS)
  3479.  4    reserved
  3480.  3    select bus (SELBUS)
  3481.     =0 select bus A
  3482.     =1 select bus B (SELBUSB)
  3483.  2    reserved
  3484.  1    "SELWIDE"
  3485.  0    reserved
  3486. Note:    clearing bits 7-6 will take the card out of diagnostic mode and make
  3487.       the host adapter LED follow bus activity
  3488. SeeAlso: #P0988
  3489.  
  3490. Bitfields for DSCommand register (DSCOMMAND):
  3491. Bit(s)    Description    (Table P1054)
  3492.  7    cache threshold enable (CACHETHEN)
  3493.  6    data   parity check enable (DPARCKEN)
  3494.  5    memory parity check enable (MPARCKEN)
  3495.  4    external request lock (EXTREQLCK)
  3496.  3-0    reserved
  3497.  
  3498. (Table P1055)
  3499. Values for the 93C56/93C66 serial EEPROM instructions:
  3500. Opcode         Function  Parameter  Description
  3501. 0000xxxxxxb  EWDS      -      disable all programming instructions
  3502. 0001xxxxxxb  WRAL      D15..D0      write to all registers
  3503. 0010xxxxxxb  ERAL      -      erase all registers
  3504. 0011xxxxxxb  EWEN      -      write enable
  3505.                   must precede all programming modes
  3506. 01AAAAAAAAb  WRITE     D15..D0      write register with address A7..A0
  3507. 10AAAAAAAAb  READ      -      read registers starting with address A7..A0
  3508. 11AAAAAAAAb  ERASE     -      erase register with address A7..A0
  3509. SeeAlso: #P1007,#P1052
  3510.  
  3511. Format of the serial EEPROM:
  3512. Address    Size    Description    (Table P1056)
  3513.  00h  16 WORDs    SCSI ID configuration (see #P1009)
  3514.  10h    WORD    BIOS control (see #P1057)
  3515.  11h    WORD    host adapter control (see #P1058)
  3516.  12h    WORD    bus release time / host adapter ID (see #P1013)
  3517.  13h    WORD    maximum targets (see #P1014)
  3518.  14h  11 WORDs    reserved
  3519.  1Fh    WORD    checksum
  3520. SeeAlso: #P1052
  3521.  
  3522. Bitfields for the serial EEPROM BIOS control word:
  3523. Bit(s)    Description    (Table P1057)
  3524.  15-8    reserved
  3525.  7    extended translation enabled (CFEXTEND)
  3526.  6-5    reserved
  3527.  4    support more than 2 drives (CFSM2DRV)
  3528.  3    reserved
  3529.  2    BIOS enabled (CFBIOSEN)
  3530.  1    support removable drives for boot only (CFSUPREMB)
  3531.  0    support all removable drives (CFSUPREM)
  3532. SeeAlso: #P1056
  3533.  
  3534. Bitfields for the serial EEPROM host adapter control word:
  3535. Bit(s)    Description    (Table P1058)
  3536.  15-7    reserved
  3537.  6    reset SCSI bus at IC initialization (CFRESETB)
  3538.  5    reserved
  3539.  4    SCSI parity (CFSPARITY)
  3540.  3    SCSI high byte termination (CFWSTERM)
  3541.  2    SCSI low  byte termination (CFSTERM)
  3542.  1    (Ultra SCSI) Ultra SCSI speed enable (CFULTRAEN)
  3543.  0    reserved
  3544. SeeAlso: #P0600,#P0979,#P0980,#P0994,#P1056
  3545. --------p-Pxxxx------------------------------
  3546. PORT xxxx - AMD-645 - Power Management Registers
  3547. Range:    on any 256-byte boundary
  3548. SeeAlso: #01049
  3549.  
  3550. +000w RC  power management status (see #P1059)
  3551. +002w RW  power management enable (see #P1060)
  3552. +004w RW  power management control (see #P1061)
  3553. +006      unused???
  3554. +008d RW  power management timer (24 or 32 bits)
  3555. +00C      unused???
  3556. +010d RW  processor power management control (see #P1062)
  3557. +014  R-  "P_LVL2" processor level 2 -- reading switches to C2 power state
  3558. +015  R-  "P_LVL3" processor level 3 -- reading switches to C3 power state
  3559. +016      unused???
  3560. +020w RC  general purpose status (see #P1063)
  3561. +022w RW  general purpose SCI enable (see #P1064)
  3562. +024w RW  general purpose SMI enable (see #P1065)
  3563. +026w RW  power supply control (see #P1066)
  3564. +028w RC  global power management status (see #P1067)
  3565. +02Aw RW  global power management enable (see #P1068)
  3566. +02Cw RW  global power management control (see #P1069)
  3567. +02E      unused???
  3568. +02F  RW  SMI command
  3569.     writing this port sets the SW_SMI_STS bit (see #P1067,#P1068)
  3570. +030d RC  primary activity detection status (see #P1070)
  3571. +034d RW  primary activity detection enable (see #P1071)
  3572. +038d RW  general purpose timer reload enable (see #P1072)
  3573. +03C      unused???
  3574. +040  RW  control of general-purpose I/O direction (see #P1073)
  3575. +041      ???
  3576. +042  RW  output value for GPIO port (see #P1074)
  3577. +043  RW  ???
  3578. +044  RW  input value for GPIO port (see #P1075)
  3579. +045  RW  ???
  3580. +046w RW  output value for general-purpose output port
  3581. +048w RW  input value for general-purpose input port
  3582.  
  3583. Bitfields for AMD-645 Power Management Control Status:
  3584. Bit(s)    Description    (Table P1059)
  3585.  15    wakeup request -- system will transition from suspend to normal working
  3586.  14-12    reserved (0)
  3587.  11    power button override (set when PWRBTN# asserted for more than 4 sec)
  3588.     system will transition into "soft off" power state
  3589.  10    RTC alarm occurred
  3590.  9    reserved (0)
  3591.  8    "PB_STS" power button -- PWRBTN# asserted (but for less than 4 sec)
  3592.  7-6    reserved (0)
  3593.  5    "GBL_STS" Global Status
  3594.     set by hardware when "BIOS_RLS" set; "BIOS_RLS" cleared by hardware
  3595.       when this bit cleared
  3596.  4    system bus requested by any bus master
  3597.  3-1    reserved (0)
  3598.  0    ACPI timer carried into highest bit
  3599. Note:    all bits are write-clear: write a 1 bit to acknowledge the
  3600.       status and clear that bit
  3601. SeeAlso: #P1060,MEM xxxxh:xxx0h"ACPI"
  3602.  
  3603. Bitfields for AMD-645 Power Management Enable register:
  3604. Bit(s)    Description    (Table P1060)
  3605.  15-11    reserved (0)
  3606.  10    enable SCI/SMI on RTC alarm
  3607.  9    reserved (0)
  3608.  8    enable SCI/SMI when PB_STS set (see #P1059 bit 8)
  3609.  7-6    reserved
  3610.  5    enable SCI/SMI when GBL_STS set (see #P1059 bit 5)
  3611.  4-1    reserved
  3612.  0    enable SCI/SMI when ACPI timer carries
  3613. SeeAlso: #P1059,#P1061,MEM xxxxh:xxx0h"ACPI"
  3614.  
  3615. Bitfields for AMD-645 Power Management Control register:
  3616. Bit(s)    Description    (Table P1061)
  3617.  15-14    reserved (0)
  3618.  13    (write) force transition into sleep state (bits 12-10) when set
  3619.     (read) always 0
  3620.  12-10    sleep type
  3621.     000 "soft off" (suspend-to-disk)
  3622.     010 power-on suspend
  3623.     0x1 reserved
  3624.     1xx reserved
  3625.  9-3    reserved
  3626.  2    "GLB_RLS" release SCI/SMI lock
  3627.     when set, BIOS_STS bit set by hardware; when BIOS_STS cleared,
  3628.       hardware clears this bit
  3629.  1    enable transition from suspend to normal working state on bus master
  3630.       request
  3631.  0    power management event interrupt type
  3632.     0 generate SMI
  3633.     1 generate SCI
  3634. SeeAlso: #P1059,#P1060
  3635.  
  3636. Bitfields for AMD-645 Processor Power Management Control register:
  3637. Bit(s)    Description    (Table P1062)
  3638.  31-5    reserved (0)
  3639.  4    enable clock throttling
  3640.     0 = suspend processor on reading P_LVL2 port at offset 14h
  3641.     1 = throttle clock by modulating STPCLK# on reading P_LVL2
  3642.  3-1    throttling duty cycle (proportion of time STPCLK# is asserted)
  3643.     000 reserved
  3644.     001 0 - 1/8
  3645.     010 1/8 - 2/8
  3646.     ...
  3647.     111 6/8 - 7/8
  3648.  0    reserved (0)
  3649. SeeAlso: #P1061,#P1062
  3650.  
  3651. Bitfields for AMD-645 General Purpose Status register:
  3652. Bit(s)    Description    (Table P1063)
  3653.  15-10    reserved (0)
  3654.  9    "USB_STS"    USB peripheral generated resume event
  3655.  8    "RI_STS"    ring detected (RI# asserted)
  3656.  7    "EXT7_STS"    EXTSMI7# pin toggled
  3657.  6-0    "EXT?_STS"    EXTSMI6# - EXTSMI0# pins toggled
  3658. SeeAlso: #P1061,#P1064
  3659.  
  3660. Bitfields for AMD-645 General Purpose SCI Enable register:
  3661. Bit(s)    Description    (Table P1064)
  3662.  15-10    reserved (0)
  3663.  9    enable SCI when USB_STS bit becomes set
  3664.  8    enable SCI when RI_STS bit becomes set
  3665.  7-0    enable SCI when EXT?_STS bit becomes set
  3666. SeeAlso: #P1063,#P1065
  3667.  
  3668. Bitfields for AMD-645 General Purpose SMI Enable register:
  3669. Bit(s)    Description    (Table P1065)
  3670.  15-10    reserved (0)
  3671.  9    enable SMI when USB_STS bit becomes set
  3672.  8    enable SMI when RI_STS bit becomes set
  3673.  7-0    enable SMI when EXT?_STS bit becomes set
  3674. SeeAlso: #P1063,#P1064,#P1066
  3675.  
  3676. Bitfields for AMD-645 Power Supply Control register:
  3677. Bit(s)    Description    (Table P1066)
  3678.  15-11    reserved (0)
  3679.  10    enable setting of RI_STS bit to turn on power
  3680.  9    set PB_STS bit to resume from suspend
  3681.  8    set RTC_STS bit to resume from suspend on RTC alarm
  3682.  7-1    reserved (0)
  3683.  0    enable setting of EXT0_STS bit to resume from suspend
  3684. SeeAlso: #P1063,#P1067,#P1068
  3685.  
  3686. Bitfields for AMD-645 PM Global Status register:
  3687. Bit(s)    Description    (Table P1067)
  3688.  15-7    reserved (0)
  3689.  6    "SW_SMI_STS" SMI_CMD port has been written
  3690.  5    "BIOS_STS" set whenever GLB_RLS bit is set; GLB_RLS is cleared when
  3691.       this bit is cleared
  3692.  4    legacy USB event occurred
  3693.  3    GP1 timer timed out
  3694.  2    GP0 timer timed out
  3695.  1    secondary event timer timed out
  3696.  0    "PACT_STS" an enabled primary system activity has occurred (see #P1071)
  3697. Note:    this register is write-clear: writing a 1 to a bit clears that bit
  3698. SeeAlso: #P1066
  3699.  
  3700. Bitfields for AMD-645 PM Global Enable register:
  3701. Bit(s)    Description    (Table P1068)
  3702.  15-7    reserved (0)
  3703.  6    enable SMI when SMI_CMD port is written
  3704.  5    enable SMI when BIOS_STS bit set (see #P1067)
  3705.  4    enable SMI on legacy USB events
  3706.  3    enable SMI when GP1 timer times out
  3707.  2    enable SMI when GP0 timer times out
  3708.  1    enable SMI when secondary event timer times out
  3709.  0    enable SMI on occurrence of any primary activity
  3710. SeeAlso: #P1066,#P1067,#P1069
  3711.  
  3712. Bitfields for AMD-645 PM Global Control ("GLB_CTL") register:
  3713. Bit(s)    Description    (Table P1069)
  3714.  15-9    reserved
  3715.  8    SMI is active
  3716.  7-5    reserved
  3717.  4    SMI lock enabled (write-clear)
  3718.     (must be cleared before bit 8 can be cleared and the next SMI allowed)
  3719.  3    reserved
  3720.  2    type of power button triggering
  3721.     0 generate SCI/SMI on PWRBTN# asserted
  3722.     1 generate SCI/SMI when PWRBTN# becomes deasserted
  3723.     (must be clear to comply with ACPI v0.9, but setting it avoids the
  3724.       situation where holding the power button for four seconds first wakes
  3725.       the system and then puts it into the soft-off state)
  3726.  1    "BIOS_RLS" used by legacy software to release the SCI/SMI lock; when
  3727.       set, the GBL_STS bit is set by hardware; when GBL_STS is cleared,
  3728.       this bit is cleared by hardware
  3729.  0    enable SMI generation
  3730. SeeAlso: #P1066,#P1067,#P1068,MEM xxxxh:xxx0h"ACPI"
  3731.  
  3732. Bitfields for AMD-645 PM Primary Activity Detect Status register:
  3733. Bit(s)    Description    (Table P1070)
  3734.  31-8    reserved (0)
  3735.  7    keyboard controller accessed via PORT 0060h
  3736.  6    serial port accessed (via PORT 03F8h-03FFh, 02F8h-02FFh, 03E8h-03EFh,
  3737.       or PORT 02E8h-02EFh)
  3738.  5    parallel port accessed (via PORT 0278h-027Fh or PORT 0378h-037Fh)
  3739.  4    video controller accessed
  3740.  3    IDE or Floppy controller accessed
  3741.  2    reserved (0)
  3742.  1    a primary interrupt occurred (see #01049 [offset 44h])
  3743.  0    ISA busmaster or DMA activity occurred
  3744. Note:    this register is write-clear: write a 1 to a bit to clear it
  3745. SeeAlso: #P1071,#P1069
  3746.  
  3747. Bitfields for AMD-645 PM Primary Activity Detect Enable register:
  3748. Bit(s)    Description    (Table P1071)
  3749.  31-8    reserved (0)
  3750. ---set PACT_STS (see #P1067) whenever:
  3751.  7    keyboard controller is accessed via PORT 0060h
  3752.  6    serial port is accessed (via PORT 03F8h-03FFh, 02F8h-02FFh,
  3753.       PORT 03E8h-03EFh, or PORT 02E8h-02EFh)
  3754.  5    parallel port is accessed (via PORT 0278h-027Fh or PORT 0378h-037Fh)
  3755.  4    video controller is accessed
  3756.  3    IDE or Floppy controller is accessed
  3757.  2    reserved (0)
  3758.  1    a primary interrupt occurrs (see #01049 [offset 44h])
  3759.  0    ISA busmaster or DMA activity occurrs
  3760. SeeAlso: #P1070,#P1069
  3761.  
  3762. Bitfields for AMD-645 GP Timer Reload Enable register:
  3763. Bit(s)    Description    (Table P1072)
  3764.  31-8    reserved (0)
  3765.  7    reload GP1 whenever keyboard controller is accessed
  3766.  6    reload GP1 whenever a serial port is accessed
  3767.  5    reserved (0)
  3768.  4    reload GP1 whenever video controller is accessed
  3769.  3    reload GP1 whenever IDE or floppy controller is accessed
  3770.  2-1    reserved (0)
  3771.  0    reload GP0 whenever a primary activity is detected
  3772. SeeAlso: #P1071,#P1070
  3773.  
  3774. Bitfields for AMD-645 GPIO Direction Control register:
  3775. Bit(s)    Description    (Table P1073)
  3776.  7-5    reserved (0)
  3777.  4    direction of GPIO4 (0 = input, 1 = output)
  3778.     this bit sets Pin136, which is always output if configured as GPO_WE#
  3779.  3    direction of GPIO3 (0 = input, 1 = output)
  3780.     this bit sets Pin92, which is always an output if configured as GPI_RE#
  3781.  2    direction of GPIO2/I2CD1 (0 = input, 1 = output)
  3782.  1    direction of GPIO1/I2CD2 (0 = input, 1 = output)
  3783.  0    direction of GPIO0 (0 = input, 1 = output)
  3784. SeeAlso: #P1071,#P1074
  3785.  
  3786. Bitfields for AMD-645 GPIO Port Output Value register:
  3787. Bit(s)    Description    (Table P1074)
  3788.  7-5    reserved
  3789.  4    value for GPIO4 pin (ignored if pin configured as GPO_WE#)
  3790.  3    value for GPIO3 pin (ignored if pin configured as GPI_RE#)
  3791.  2    value for GPIO2/I2CD1 pin
  3792.  1    value for GPIO1/I2CD2 pin
  3793.  0    value for GPIO0 pin
  3794. Note:    while these bits can be read back, they only indicate the values which
  3795.       are driven onto the pins if configured for output; to read the actual
  3796.       input values, use the "input value" register at offset 44h
  3797.       (see #P1075)
  3798. SeeAlso: #P1075
  3799.  
  3800. Bitfields for GPIO Port Input Value (EXTSMI_VAL) register:
  3801. Bit(s)    Description    (Table P1075)
  3802.  7    (if GPIO3 set to input) current EXTSMI7# on XD7 (Pin122)
  3803.  6    (if GPIO3 set to input) current EXTSMI6# on XD6 (Pin121)
  3804.  5    (if GPIO3 set to input) current EXTSMI5# on XD5 (Pin119)
  3805.  4    (if GPIO4 set to input) current EXTSMI4# on XD4 (Pin118)
  3806.     (if GPIO4 set to output) current EXTSMI4# on GPIO4 (Pin136)
  3807.  3    (if GPIO3 set to input) current EXTSMI3# on XD3 (Pin117)
  3808.     (if GPIO3 set to output) current EXTSMI3# on GPIO3 (Pin92)
  3809.  2    GPIO2 input value
  3810.  1    GPIO1 input value
  3811.  0    GPIO0 input value
  3812. SeeAlso: #P1074
  3813. --------X-Pxxxx------------------------------
  3814. PORT xxxx - AMD-645 - USB
  3815. SeeAlso: #01046 at INT 1A/AX=B10Ah/SF=1106h
  3816. Note:    further details are supposedly in the UHCI v1.1 standard
  3817.  
  3818. +000w ?W  USB command
  3819. +002w R?  USB status
  3820. +004w ?W  USB interrupt enable
  3821. +006w ??  frame number
  3822. +008d ??  frame list base address
  3823. +00C  ??  Start of Frame Modify
  3824. +00D    unused???
  3825. +010w RW  Port 1 Status/Control
  3826. +012w RW  Port 2 Status/Control
  3827. ----------Pxxxx------------------------------
  3828. PORT xxxx - Ensoniq AudioPCI ES1370 - CONTROL REGISTERS
  3829. Range:    anywhere on 64 byte boundary
  3830.  
  3831. +000d RW  interrupt/chip select control register (see #P1076)
  3832. +004d R-  interrupt/chip select status register (see #P1077)
  3833. +008  RW  UART data register (MIDI data)
  3834. +009  -W  UART control register (see #P1078)
  3835. +009  R-  UART status register (see #P1079)
  3836. +00A  RW  UART reserved register (see #P1080)
  3837. +00Cd RW  memory page register (see #P1081)
  3838. +010d -W  CODEC write register (see #P1082)
  3839. +020d RW  serial interface control register (see #P1083)
  3840. +024d RW  DAC1 channel sample count register (see #P1084)
  3841. +028d RW  DAC2 channel sample count register (see #P1084)
  3842. +02Cd RW  ADC channel sample count register (see #P1084)
  3843. +030d RW  internal memory 1 (see #P1085)
  3844. +034d RW  internal memory 2 (see #P1086)
  3845. +038d RW  internal memory 3 (see #P1087)
  3846. +03Cd RW  internal memory 4 (see #P1088)
  3847.  
  3848. Bitfields for Ensoniq ES1370/ES1371 interrupt/chip select control register:
  3849. Bit(s)    Description    (Table P1076)
  3850. ---AudioPCI ES1370---
  3851.  31    record buffer transfer disable (ADC stop)
  3852.  30    (bit 0 = 0) general purpose output
  3853.     (bit 0 = 1) external IRQ output
  3854.  29    reserved
  3855.  28-16    programmable clock divide ratio (DAC2)
  3856. ---AudioPCI-97 ES1371---
  3857.  31-26    reserved
  3858.  25-24    joystick base I/O address
  3859.     00 = 200h
  3860.     01 = 208h
  3861.     10 = 210h
  3862.     11 = 218h
  3863.  23-20    GPIO pin 3-0 (read-only)
  3864.  19-16    GPIO pin 3-0 output
  3865. ------
  3866.  15    MPEG data format
  3867.     0 = Sony (lrclk high = left channel; data left justified)
  3868.     1 = I2S (lrclk low = left channel; data 1 bit clock delayed)
  3869. ---AudioPCI ES1370---
  3870.  14    CODEC DAC (DAC2) source
  3871.     0 = programmable clock generator
  3872.     1 = MPEG clocks
  3873.  13-12    fixed frequency clock generator frequency (DAC1)
  3874.     00 = 5.512 KHz
  3875.     01 = 11.025 KHz
  3876.     10 = 22.05 KHz
  3877.     11 = 44.1 KHz
  3878.  11    CODEC DACs synchronous with fixed frequency clock generator
  3879. ---AudioPCI-97 ES1371---
  3880.  14    AC97 warm reset
  3881.  13    CCB record transfer disable
  3882.  12    power management level change interrupt enable
  3883.  11    record channel source
  3884.     0 = CODEC ADC
  3885.     1 = I2S
  3886. ------
  3887.  10    CCB voice interrupts enable
  3888. ---AudioPCI ES1370---
  3889.  9    record channel source in serial module
  3890.     0 = CODEC ADC
  3891.     1 = MPEG
  3892.  8    general purpose output
  3893. ---AudioPCI-97 ES1371---
  3894.  9-8    current power down level
  3895.     00-11 = D0-D3
  3896. ------
  3897.  7    memory bus request enable (disables memory access) (test purposes only)
  3898.  6    DAC1 (CODEC FM DAC) playback channel enable
  3899.  5    DAC2 (CODEC DAC) playback channel enable
  3900.  4    CODEC ADC record channel enable
  3901.  3    UART enable
  3902.  2    joystick enable
  3903. ---AudioPCI ES1370---
  3904.  1    CODEC interface enable
  3905.  0    PCI serr signal disable
  3906. ---AudioPCI-97 ES1371---
  3907.  1    crystal clock input disable
  3908.  0    PCI clock input disable
  3909. ------
  3910. Note:    this register is addressable as byte, word and dword
  3911.  
  3912. Bitfields for Ensoniq ES1370/ES1371 interrupt/chip select status register:
  3913. Bit(s)    Description    (Table P1077)
  3914. ---AudioPCI ES1370---
  3915.  31    DAC1, DAC2, ADC, UART or CCB interrupt occurred
  3916.  30-11    reserved
  3917.  10    CODEC busy or register write in progress
  3918.  9    CODEC busy
  3919.  8    CODEC register write in progress
  3920.  7    reserved
  3921.  6-5    CCB voice code (if bit 4 = 1)
  3922.     00 = DAC1
  3923.     01 = DAC2
  3924.     10 = ADC
  3925.     11 = reserved
  3926. ---AudioPCI-97 ES1371---
  3927.  31    DAC1, DAC2, ADC, UART, CCB or power management interrupt occurred
  3928.  30-9    reserved
  3929.  8    CODEC synchronization error
  3930.  7-6    CCB voice code (if bit 4 = 1)
  3931.     00 = DAC1
  3932.     01 = DAC2
  3933.     10 = ADC
  3934.     11 = reserved
  3935.  5    power level interrupt status
  3936. ------
  3937.  4    CCB interrupt status
  3938.  3    UART interrupt status
  3939.  2    DAC1 playback channel interrupt status
  3940.  1    DAC2 playback channel interrupt status
  3941.  0    ADC record channel interrupt status
  3942.  
  3943. Bitfields for Ensoniq ES1370/ES1371 UART control register:
  3944. Bit(s)    Description    (Table P1078)
  3945.  7    UART receiver interrupt enable
  3946.  6-5    UART transmitter operation
  3947.     01 = Txrdy interrupts enabled
  3948.  4-2    reserved
  3949.  1-0    UART control
  3950.     11 = software reset
  3951.  
  3952. Bitfields for Ensoniq ES1370/ES1371 UART status register:
  3953. Bit(s)    Description    (Table P1079)
  3954.  7    UART receiver interrupt status
  3955.  6-3    reserved
  3956.  2    UART transmitter interrupt status
  3957.  1    UART transmitter ready
  3958.  0    UART receiver ready
  3959.  
  3960. Bitfields for Ensoniq ES1370/ES1371 UART reserved register:
  3961. Bit(s)    Description    (Table P1080)
  3962.  7-1    reserved
  3963.  0    UART test mode enable (UART clock switched to PCI bus clock)
  3964.  
  3965. Bitfields for Ensoniq ES1370/ES1371 memory page register:
  3966. Bit(s)    Description    (Table P1081)
  3967.  31-4    reserved
  3968.  3-0    memory page select (accessed in registers 30h-3Fh)
  3969.     0000 = DAC1 sample bytes 15-0 (lower half buffer)
  3970.     0001 = DAC1 sample bytes 31-16
  3971.     0010 = DAC1 sample bytes 47-32 (upper half buffer)
  3972.     0011 = DAC1 sample bytes 63-48
  3973.     0100 = DAC2 sample bytes 15-0 (lower half buffer)
  3974.     0101 = DAC2 sample bytes 31-16
  3975.     0110 = DAC2 sample bytes 47-32 (upper half buffer)
  3976.     0111 = DAC2 sample bytes 63-48
  3977.     1000 = ADC sample bytes 15-0 (lower half buffer)
  3978.     1001 = ADC sample bytes 31-16
  3979.     1010 = ADC sample bytes 47-32 (upper half buffer)
  3980.     1011 = ADC sample bytes 63-48
  3981.     1100 = DAC1/DAC2 frame information
  3982.     1101 = ADC frame information
  3983.     1110 = UART FIFO
  3984.     1111 = UART FIFO
  3985. Note:    this register is addressable as byte, word and dword
  3986.  
  3987. Bitfields for Ensoniq ES1370/ES1371 CODEC write register:
  3988. Bit(s)    Description    (Table P1082)
  3989. ---AudioPCI ES1370---
  3990.  31-16    reserved
  3991.  15-8    CODEC register index
  3992. ---AudioPCI-97 ES1371---
  3993.  31-24    reserved
  3994.  23    AC97 CODEC read/write
  3995.     0 = write
  3996.     1 = read
  3997.  22-16    AC97 CODEC register index
  3998. ------
  3999.  7-0    CODEC register data
  4000. ---index 16h---
  4001.  1    0 = CODEC power down
  4002. ------
  4003. Note:    (AudioPCI ES1370) this register is addressable as word and dword
  4004.  
  4005. Bitfields for Ensoniq ES1370/ES1371 serial interface control register:
  4006. Bit(s)    Description    (Table P1083)
  4007.  31-22    reserved
  4008.  22    (ES1371) DAC test mode enable (selects I2S lrclk input as  source for
  4009.       playback and record channels)
  4010.  21-19    sample address counter loop binary offset
  4011.  18-16    sample address counter channel start/restart binary offset
  4012.  15    ADC channel action when sample count reaches zero
  4013.     0 = loop (interrupt set, keep recording)
  4014.     1 = stop (inteerupt set, stop recording)
  4015.  14    DAC2 channel action when sample count reaches zero
  4016.     0 = loop (interrupt set, keep playing)
  4017.     1 = stop (inteerupt set, play last sample)
  4018.  13    DAC1 channel action when sample count reaches zero (same values as
  4019.       bit 14)
  4020.  12    DAC2 channel playback pause
  4021.  11    DAC1 channel playback pause
  4022.  10    ADC interrupt enable
  4023.  9    DAC2 interrupt enable
  4024.  8    DAC1 interrupt enable
  4025.  7    DAC1 sample counter reload
  4026.  6    DAC2 sample counter reload
  4027.  5-4    ADC channel data format
  4028.     00 = 8-bit mono
  4029.     01 = 8-bit stereo
  4030.     10 = 16-bit mono
  4031.     11 = 16-bit stereo
  4032.  3-2    DAC2 channel data format (same values as bits 5-4)
  4033.  1-0    DAC1 channel data format (same values as bits 5-4)
  4034. Note:    this register is addressable as byte, word and dword
  4035.  
  4036. Bitfields for Ensoniq ES1370/ES1371 DAC1/2/ADC channel sample count register:
  4037. Bit(s)    Description    (Table P1084)
  4038.  31-16    sample counter current value (read-only)
  4039.  15-0    sample counter (samples - 1)
  4040. Note:    these registers are addressable as word and dword
  4041.  
  4042. Bitfields for Ensoniq ES1370/ES1371 internal memory 1:
  4043. Bit(s)    Description    (Table P1085)
  4044. ---register +00Ch bits 3-0 = 0000---
  4045.  31-0    DAC1 sample bytes 3-0
  4046. ---register +00Ch bits 3-0 = 0001---
  4047.  31-0    DAC1 sample bytes 19-16
  4048. ---register +00Ch bits 3-0 = 0010---
  4049.  31-0    DAC1 sample bytes 35-32
  4050. ---register +00Ch bits 3-0 = 0011---
  4051.  31-0    DAC1 sample bytes 51-48
  4052. ---register +00Ch bits 3-0 = 0100---
  4053.  31-0    DAC2 sample bytes 3-0
  4054. ---register +00Ch bits 3-0 = 0101---
  4055.  31-0    DAC2 sample bytes 19-16
  4056. ---register +00Ch bits 3-0 = 0110---
  4057.  31-0    DAC2 sample bytes 35-32
  4058. ---register +00Ch bits 3-0 = 0111---
  4059.  31-0    DAC2 sample bytes 51-48
  4060. ---register +00Ch bits 3-0 = 1000---
  4061.  31-0    ADC sample bytes 3-0
  4062. ---register +00Ch bits 3-0 = 1001---
  4063.  31-0    ADC sample bytes 19-16
  4064. ---register +00Ch bits 3-0 = 1010---
  4065.  31-0    ADC sample bytes 35-32
  4066. ---register +00Ch bits 3-0 = 1011---
  4067.  31-0    ADC sample bytes 51-48
  4068. ---register +00Ch bits 3-0 = 1100---
  4069.  31-0    DAC1 sample buffer memory address
  4070. ---register +00Ch bits 3-0 = 1101---
  4071.  31-0    ADC sample buffer memory address
  4072. ---register +00Ch bits 3-0 = 1110---
  4073.  31-9    reserved
  4074.  8    UART data valid
  4075.  7-0    UART data received through MIDI interface
  4076. ---register +00Ch bits 3-0 = 1111---
  4077.  31-9    reserved
  4078.  8    UART data valid
  4079.  7-0    UART data received through MIDI interface
  4080. ------
  4081. SeeAlso: #P1086
  4082.  
  4083. Bitfields for Ensoniq ES1370/ES1371 internal memory 2:
  4084. Bit(s)    Description    (Table P1086)
  4085. ---register +00Ch bits 3-0 = 0000---
  4086.  31-0    DAC1 sample bytes 7-4
  4087. ---register +00Ch bits 3-0 = 0001---
  4088.  31-0    DAC1 sample bytes 23-20
  4089. ---register +00Ch bits 3-0 = 0010---
  4090.  31-0    DAC1 sample bytes 39-36
  4091. ---register +00Ch bits 3-0 = 0011---
  4092.  31-0    DAC1 sample bytes 55-52
  4093. ---register +00Ch bits 3-0 = 0100---
  4094.  31-0    DAC2 sample bytes 7-4
  4095. ---register +00Ch bits 3-0 = 0101---
  4096.  31-0    DAC2 sample bytes 23-20
  4097. ---register +00Ch bits 3-0 = 0110---
  4098.  31-0    DAC2 sample bytes 39-36
  4099. ---register +00Ch bits 3-0 = 0111---
  4100.  31-0    DAC2 sample bytes 55-52
  4101. ---register +00Ch bits 3-0 = 1000---
  4102.  31-0    ADC sample bytes 7-4
  4103. ---register +00Ch bits 3-0 = 1001---
  4104.  31-0    ADC sample bytes 23-20
  4105. ---register +00Ch bits 3-0 = 1010---
  4106.  31-0    ADC sample bytes 39-36
  4107. ---register +00Ch bits 3-0 = 1011---
  4108.  31-0    ADC sample bytes 55-52
  4109. ---register +00Ch bits 3-0 = 1100---
  4110.  31-16    DAC1 dwords transferred
  4111.  15-0    DAC1 dwords in buffer - 1
  4112. ---register +00Ch bits 3-0 = 1101---
  4113.  31-16    ADC dwords transferred
  4114.  15-0    ADC dwords in buffer - 1
  4115. ---register +00Ch bits 3-0 = 1110---
  4116.  31-9    reserved
  4117.  8    UART data valid
  4118.  7-0    UART data received through MIDI interface
  4119. ---register +00Ch bits 3-0 = 1111---
  4120.  31-9    reserved
  4121.  8    UART data valid
  4122.  7-0    UART data received through MIDI interface
  4123. ------
  4124. SeeAlso: #P1085,#P1087
  4125.  
  4126. Bitfields for Ensoniq ES1370/ES1371 internal memory 3:
  4127. Bit(s)    Description    (Table P1087)
  4128. ---register +00Ch bits 3-0 = 0000---
  4129.  31-0    DAC1 sample bytes 11-8
  4130. ---register +00Ch bits 3-0 = 0001---
  4131.  31-0    DAC1 sample bytes 27-24
  4132. ---register +00Ch bits 3-0 = 0010---
  4133.  31-0    DAC1 sample bytes 43-40
  4134. ---register +00Ch bits 3-0 = 0011---
  4135.  31-0    DAC1 sample bytes 59-56
  4136. ---register +00Ch bits 3-0 = 0100---
  4137.  31-0    DAC2 sample bytes 11-8
  4138. ---register +00Ch bits 3-0 = 0101---
  4139.  31-0    DAC2 sample bytes 27-24
  4140. ---register +00Ch bits 3-0 = 0110---
  4141.  31-0    DAC2 sample bytes 43-40
  4142. ---register +00Ch bits 3-0 = 0111---
  4143.  31-0    DAC2 sample bytes 59-56
  4144. ---register +00Ch bits 3-0 = 1000---
  4145.  31-0    ADC sample bytes 11-8
  4146. ---register +00Ch bits 3-0 = 1001---
  4147.  31-0    ADC sample bytes 27-24
  4148. ---register +00Ch bits 3-0 = 1010---
  4149.  31-0    ADC sample bytes 43-40
  4150. ---register +00Ch bits 3-0 = 1011---
  4151.  31-0    ADC sample bytes 59-56
  4152. ---register +00Ch bits 3-0 = 1100---
  4153.  31-0    DAC2 sample buffer memory address
  4154. ---register +00Ch bits 3-0 = 1101---
  4155.  31-0    reserved
  4156. ---register +00Ch bits 3-0 = 1110---
  4157.  31-9    reserved
  4158.  8    UART data valid
  4159.  7-0    UART data received through MIDI interface
  4160. ---register +00Ch bits 3-0 = 1111---
  4161.  31-9    reserved
  4162.  8    UART data valid
  4163.  7-0    UART data received through MIDI interface
  4164. ------
  4165. SeeAlso: #P1086,#P1088
  4166.  
  4167. Bitfields for Ensoniq ES1370/ES1371 internal memory 4:
  4168. Bit(s)    Description    (Table P1088)
  4169. ---register +00Ch bits 3-0 = 0000---
  4170.  31-0    DAC1 sample bytes 15-12
  4171. ---register +00Ch bits 3-0 = 0001---
  4172.  31-0    DAC1 sample bytes 31-28
  4173. ---register +00Ch bits 3-0 = 0010---
  4174.  31-0    DAC1 sample bytes 47-44
  4175. ---register +00Ch bits 3-0 = 0011---
  4176.  31-0    DAC1 sample bytes 63-60
  4177. ---register +00Ch bits 3-0 = 0100---
  4178.  31-0    DAC2 sample bytes 15-12
  4179. ---register +00Ch bits 3-0 = 0101---
  4180.  31-0    DAC2 sample bytes 31-28
  4181. ---register +00Ch bits 3-0 = 0110---
  4182.  31-0    DAC2 sample bytes 47-44
  4183. ---register +00Ch bits 3-0 = 0111---
  4184.  31-0    DAC2 sample bytes 63-60
  4185. ---register +00Ch bits 3-0 = 1100---
  4186.  31-16    DAC2 dwords transferred
  4187.  15-0    DAC2 dwords in buffer - 1
  4188. ---register +00Ch bits 3-0 = 1101---
  4189.  31-0    reserved
  4190. ---register +00Ch bits 3-0 = 1110---
  4191.  31-9    reserved
  4192.  8    UART data valid
  4193.  7-0    UART data received through MIDI interface
  4194. ---register +00Ch bits 3-0 = 1111---
  4195.  31-9    reserved
  4196.  8    UART data valid
  4197.  7-0    UART data received through MIDI interface
  4198. ------
  4199. SeeAlso: #P1087
  4200. ----------Pxxxx------------------------------
  4201. PORT xxxx - Ensoniq AudioPCI-97 ES1371 - CONTROL REGISTERS
  4202. Range:    anywhere on 64 byte boundary
  4203.  
  4204. +000d RW  interrupt/chip select control register (see #P1076)
  4205. +004d R-  interrupt/chip select status register (see #P1077)
  4206. +008  RW  UART data register (MIDI data)
  4207. +009  -W  UART control register (see #P1078)
  4208. +009  R-  UART status register (see #P1079)
  4209. +00A  RW  UART reserved register (see #P1080)
  4210. +00Cd RW  memory page register (see #P1081)
  4211. +010d RW  sample rate converter interface register (see #P1089)
  4212. +014d -W  CODEC write register (see #P1082)
  4213. +014d R-  CODEC read register (see #P1090)
  4214. +018d RW  legacy control/status register (see #P1091)
  4215. +020d RW  serial interface control register (see #P1083)
  4216. +024d RW  DAC1 channel sample count register (see #P1084)
  4217. +028d RW  DAC2 channel sample count register (see #P1084)
  4218. +02Cd RW  ADC channel sample count register (see #P1084)
  4219. +030d RW  internal memory 1 (see #P1085)
  4220. +034d RW  internal memory 2 (see #P1086)
  4221. +038d RW  internal memory 3 (see #P1087)
  4222. +03Cd RW  internal memory 4 (see #P1088)
  4223.  
  4224. Bitfields for Ensoniq AudioPCI-97 ES1371 sample rate converter interface:
  4225. Bit(s)    Description    (Table P1089)
  4226.  31-25    sample rate converter RAM address
  4227.  24    sample rate converter read/write control
  4228.  23    sample rate converter busy (read-only)
  4229.  22    sample rate converter disable
  4230.  21    playback channel 1 accumulator update disable
  4231.  20    playback channel 2 accumulator update disable
  4232.  19    record channel accumulator update disable
  4233.  18-16    reserved
  4234.  15-0    sample rate converter RAM data
  4235.  
  4236. Bitfields for Ensoniq AudioPCI-97 ES1371 CODEC read register:
  4237. Bit(s)    Description    (Table P1090)
  4238.  31    AC97 CODEC data ready
  4239.  30    AC97 CODEC register access in progress
  4240.  29-24    reserved
  4241.  23    AC97 CODEC read/write
  4242.     0 = write
  4243.     1 = read
  4244.  22-16    AC97 CODEC register index
  4245.  7-0    AC97 CODEC register data
  4246.  
  4247. Bitfields for Ensoniq AudioPCI-97 ES1371 legacy control/status register:
  4248. Bit(s)    Description    (Table P1091)
  4249.  31    joystick timing
  4250.     0 = ISA
  4251.     1 = fast
  4252.  30    host interrupt blocking enable ???
  4253.  29    Sound Blaster capture address range
  4254.     0 = 220h-22Fh
  4255.     1 = 240h-24Fh
  4256.  28-27    SoundScape base register capture address range
  4257.     00 = 320h-327h
  4258.     01 = 330h-337h
  4259.     10 = 340h-347h
  4260.     11 = 350h-357h
  4261.  26-25    CODEC capture address range
  4262.     00 = 530h-537h
  4263.     01 = reserved
  4264.     10 = E80h-E87h
  4265.     11 = F40h-F47h
  4266.  24    force interrupt
  4267.  23    slave DMA controller event capture enable (address range C0h-DFh)
  4268.  22    slave interrupt controller event capture enable (address range A0h-A1h)
  4269.  21    master DMA controller event capture enable (address range 0h-Fh)
  4270.  20    master interrupt controller event capture enable (address range
  4271.       20h-21h)
  4272.  19    AdLib register event capture enable (address range 388h-38Bh)
  4273.  18    Sound Blaster register event capture enable (address range selected by
  4274.       bit 29)
  4275.  17    CODEC event capture enable (address range selected by bits 26-25)
  4276.  16    SoundScape base address register event capture enable (address range
  4277.       selected by bits 28-27)
  4278.  15-11    reserved
  4279.  10-8    captured event (read-only)
  4280.     000 = SoundScape base address
  4281.     001 = CODEC
  4282.     010 = Sound Blaster register
  4283.     011 = AdLib register
  4284.     100 = master interrupt controller
  4285.     101 = master DMA controller
  4286.     110 = slave interrupt controller
  4287.     111 = slave DMA controller
  4288.  7-3    captured event I/O address bits 4-0 (read-only)
  4289.  2    captured event read/write (read-only)
  4290.     0 = read
  4291.     1 = write
  4292.  1    reserved
  4293.  0    interrupt flag (write to reset)
  4294.     0 = interrupt occurred
  4295.     0 = interrupt not occurred
  4296. Note:    this register is addressable as byte, word and dword
  4297. --------d-Pxxxx------------------------------
  4298. PORT xxxx - Intel 82371, OPTi "Vendetta" (82C750) - Bus Master IDE Registers
  4299.  
  4300. +000  RW  command register, primary channel (see #P1092)
  4301. +002  Rw  status register, primary channel (see #P1093)
  4302. +004d RW  IDE descriptor table pointer, primary channel (see #P1094)
  4303. +008  RW  command register, secondary channel (see #P1092)
  4304. +00A  Rw  status register, secondary channel (see #P1093)
  4305. +00Cd RW  IDE descriptor table pointer, secondary channel (see #P1094)
  4306.  
  4307. Bitfields for Intel 82371 Bus Master IDE command register:
  4308. Bit(s)    Description    (Table P1092)
  4309.  7-4    reserved
  4310.  3    bus master read/write control
  4311.     =0 read
  4312.     =1 write
  4313.  2-1    reserved
  4314.  0    start/stop bus master
  4315.     =1 start
  4316.     =0 stop
  4317. SeeAlso: #P1093,#P1094
  4318.  
  4319. Bitfields for Bus Master IDE status register:
  4320. Bit(s)    Description    (Table P1093)
  4321.  7    (Intel) reserved (0)
  4322.     (OPTI "Vendetta") both channels operable at same time (read-only)
  4323.  6    drive 1 is DMA-capable
  4324.  5    drive 0 is DMA_capable
  4325.  4-3    reserved
  4326.  2    IDE interrupt pending
  4327.     write 1 to this bit to clear it
  4328.  1    IDE DMA error
  4329.     write 1 to this bit to clear it
  4330.  0    bus master IDE active (read-only)
  4331. SeeAlso: #P1092,#P1094
  4332.  
  4333. Bitfields for Bus Master IDE descriptor table pointer register:
  4334. Bit(s)    Description    (Table P1094)
  4335.  31-2    descriptor table base address bits 31-2
  4336.  1-0    reserved (0)
  4337. Notes:    (Intel 82371) the descriptor table must not cross a 4K boundary
  4338.     (OPTi "Vendetta") the descriptor table must not cross a 64K boundary
  4339. SeeAlso: #P1092,#P1093
  4340. ----------Pxxxx------------------------------
  4341. PORT xxxx - Intel 82371SB - USB Host I/O Registers
  4342. InstallCheck: see #01215 at INT 1A/AX=B10Ah
  4343. SeeAlso: #01215
  4344.  
  4345. +000w RW  USB command register (see #P1095)
  4346. +002w Rw  USB status (see #P1096)
  4347. +004w RW  USB interrupt enable (see #P1097)
  4348. +006w RW  Frame Number (see #P1098)
  4349. +008d RW  Frame List Base Address
  4350.        (bits 11-0 must be written as zeros)
  4351. +00C  RW  Start of Frame Modify (see #P1099)
  4352. +010w RW  port 1 status/control (see #P1100)
  4353. +012w RW  port 2 status/control (see #P1100)
  4354.  
  4355. Bitfields for Intel 82371SB USB command register:
  4356. Bit(s)    Description    (Table P1095)
  4357.  15-8    reserved
  4358.  7    maximum packet size (0=32 bytes, 1=64 bytes)
  4359.  6    Host Controller has been configured (set by software)
  4360.  5    software debug mode
  4361.  4    force global resume
  4362.  3    enter global suspend mode
  4363.  2    global reset
  4364.  1    host controller reset
  4365.  0    run/stop schedule (0=stop, 1=run)
  4366. SeeAlso: #P1096
  4367.  
  4368. Bitfields for Intel 82371SB USB status register:
  4369. Bit(s)    Description    (Table P1096)
  4370.  15-6    reserved
  4371.  5    host controller halted
  4372.  4    host controller process error
  4373.  3    PCI bus error
  4374.  2    resume received
  4375.  1    USB error interrupt
  4376.  0    USB interrupt
  4377. Note:    to clear a bit in this register, write a 1 to it
  4378. SeeAlso: #P1095
  4379.  
  4380. Bitfields for Intel 82371SB USB interrupt enable register:
  4381. Bit(s)    Description    (Table P1097)
  4382.  15-4    reserved
  4383.  3    enable short packet interrupts
  4384.  2    enable Interrupt On Complete
  4385.  1    enable Resume
  4386.  0    enable Timeout/CRC
  4387. SeeAlso: #P1096,#P1098
  4388.  
  4389. Bitfields for Intel 82371SB Frame Number register:
  4390. Bit(s)    Description    (Table P1098)
  4391.  15-11    reserved
  4392.  10-0    Frame List Current Index/Frame Number
  4393.     incremented at end of each time frame (~1ms)
  4394. Note:    only WORD writes are allowed to this register
  4395. SeeAlso: #P1095,#P1097
  4396.  
  4397. Bitfields for Intel 82371SB Start of Frame Modify register:
  4398. Bit(s)    Description    (Table P1099)
  4399.  7    reserved
  4400.  6-0    SOF timing value (default 64)
  4401. Note:    SOF cycle time equals 11936+timing value
  4402. SeeAlso: #P1095
  4403.  
  4404. Bitfields for Intel 82371SB Port 1/2 status/control register:
  4405. Bit(s)    Description    (Table P1100)
  4406.  15-13    reserved (0)
  4407.  12    suspend port
  4408.  11-10    reserved
  4409.  9    port in Reset State
  4410.  8    low-speed device is attached (read-only)
  4411.  7    reserved (1)
  4412.  6    resume detected (read-only)
  4413.  5-4    line status (read-only)
  4414.     bit 4: D+ signal line
  4415.     bit 5: D- signal line
  4416.  3    port enabled/disabled status has changed
  4417.     write 1 to this bit to clear it
  4418.  2    port is enabled
  4419.  1    connect status has changed
  4420.     write 1 to this bit to clear it
  4421.  0    current connect status (read-only)
  4422. Note:    only WORD writes are permitted to this register
  4423. SeeAlso: #P1095
  4424. --------!---CREDITS--------------------------
  4425. Wim Osterholt        <wim@djo.wtm.tudelft.nl>        Original File
  4426. Chuck Proctor        <71534.2302@CompuServe.COM>
  4427. Richard W. Watson    <73042.1420@CompuServe.COM>
  4428. Matthias Paul        <mpaul@ibh.rwth-aachen.de>
  4429. Serguei Shtyliov    <serge.fido@coudert.msk.ru>        Xirlink XL-22x
  4430. Serguei Shtyliov    <serge.fido@coudert.msk.ru>        TMC-16x0 SCSI
  4431. Serguei Shtyliov    <serge.fido@coudert.msk.ru>        AHA-154x SCSI
  4432.                                 MPU-401 MIDI
  4433.  
  4434. Some of the information in this list was extracted from Frank van Gilluwe's
  4435. _The_Undocumented_PC_, a must-have book for anyone programming down to the
  4436. "bare metal" of a PC.
  4437.  
  4438. Some of the information in this list from the shareware version of Dave
  4439. Williams' DOSREF, v3.0.
  4440.  
  4441. 8514/A hardware ports found in FractInt v18.0 source file FR8514A.ASM
  4442.  
  4443. Compaq QVision info from the _COMPAQ_QVision_Graphics_System_Technical_
  4444. _Reference_Guide_, second edition (October 1993).  Compaq part number
  4445. 073A/0693.  Much more to come!
  4446.  
  4447. AMI keyboard controller PORT 0064h commands from the American Megatrends, Inc.
  4448. _Version_KF_and_KH_Keyboard_Controller_BIOS_Reference_, available on the
  4449. AMI BBS and american.megatrends.com as KFKHMAN.ZIP.
  4450.  
  4451. Various chipset infos from "Het BIOS Boekje" 2nd edition, by Alle Metzlar,
  4452. ISBN 90-72260-59-7 (1995).
  4453.  
  4454. ATA-3 info from "AT Attachment-3 Interface (ATA-3) Revision 1", dated
  4455. April 21, 1995.
  4456.  
  4457. Some additional EISA info from _EISA_System_Architecture_ (second edition),
  4458. by MindShare, Inc. (Addison-Wesley 1995, ISBN 0-201-40995-X).
  4459.  
  4460. AMI BIOS diagnostics codes (port 0080h) from file CHECKPTS on AMI BBS.
  4461.  
  4462. Some S3 and additional ATI Mach8/Mach32 info from Richard F. Ferraro's
  4463. _Programmer's_Guide_to_the_EGA,_VGA,_and_Super_VGA_Cards_, third edition.
  4464.  
  4465. PCnet-ISA info from _Am79C960_PCnet-ISA(tm)_Technical_Manual_, May 1992,
  4466. available from www.amd.com as 16850B.PDF; additional details from file
  4467. 16907B.PDF.
  4468.  
  4469. PCnet-SCSI info from _Am79C974 PCnet(tm)-SCSI_Combination_Ethernet_and_SCSI_
  4470. _Controller_for_PCI_Systems_, available from www.amd.com as 18681B.PDF.
  4471.  
  4472. PCnet-FAST info from _Am79C971 PCnet(tm)-FAST_Single-Chip_Full-Duplex_10/100_
  4473. _Mbps_Ethernet_Controller_for_PCI_Local_Bus_, available from www.amd.com as
  4474. 20550B.PDF.
  4475.  
  4476. S.M.A.R.T. information from _Self-Monitoring,_Analysis,_and_Reporting_
  4477. _Technology_(S.M.A.R.T.)_(SFF-8035i)_, Revision 2.0, April 1, 1996.
  4478. Available as 8035r2_0.PDF from fission.dt.wdc.com/pub/standards/SFF/.
  4479.  
  4480. A variety of ports from Frank van Giluwe's _The_Undocumented_PC_, second
  4481. edition.
  4482.  
  4483. [many more sources listed in BIBLIO.LST]
  4484. --------!---Admin----------------------------
  4485. Highest Table Number = P1016
  4486. --------!---FILELIST-------------------------
  4487. Please redistribute all of the files comprising the interrupt list (listed at
  4488. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  4489. quartet of archives named INTER60A through INTER60D (preferably the original
  4490. authenticated PKZIP archives), and the utility and hypertext programs in a trio
  4491. of additional archives called INTER60E.ZIP to INTER60G.ZIP.
  4492.  
  4493. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  4494. --------!---CONTACT_INFO---------------------
  4495. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  4496. FIDO: Ralf Brown 1:129/26.1
  4497.